博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis简介
阅读量:2430 次
发布时间:2019-05-10

本文共 983 字,大约阅读时间需要 3 分钟。

起源

2008年,意大利一家创业公司Merzia的创始人Salvatore Sanfilippo为了避免MySQL的低性能,亲自定做一个数据库,并于2009年开发完成了Redis的最初版本。

Salvatore Sanfilippo自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体。Hacker News在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用Redis。国内如新浪微博、街旁和知乎,国外如GitHub、Stack Overflow、Flickr、暴雪和Instagram,都是Redis的用户。

特性

redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。它具有以下特性:

  1. 速度快,性能高
    Redis的数据的数据的操作是在内存里完成的,同时再配合上高效的网络IO模型。单台每秒能处理大约10万次的QPS。
  2. 丰富的数据结构
    redis支持string,list,hash, set, sortedset等不同的数据类型。
  3. 多语言支持
    redis为客户端提供了一个简单的通信协议,现在主流的开发语言都提供了相应的client库,包括java,c++,python,ruby,php等。
  4. 持久化
    redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  5. 高可用,分布式
    为应对海量数据存储的要求, redis提供了对高可用与分布式应用的支持,包括复制,cluster等。

典型使用场景

  1. 缓存系统

    这里写图片描述

    如图所示是一个典型的缓存系统,App Server 总是先访问缓存中的数据,如果不存在再从后端数据库中访问。

  2. 计数器

    这里写图片描述
    如图所示是微博朋友圈,其点赞数就是计算器很好的例子。利用redis的原子自增指令incr可以实现计数器的功能。

  3. 消息队列系统

    这里写图片描述
    消息队列在日常开发中使用频率很高,Redis也提供了基于内存的消息队列。当对消息可靠性要求不高时,可以使用Redis来作为消息队列。

  4. 排行榜

    这里写图片描述
    如图所示是微博朋友圈人气排行榜,利用redis的sortedset有序的特点,以点赞数来作为排序的参考就可以实现上述功能。

  5. 实时系统

    这里写图片描述
    如图所示是一个实时垃圾邮件过滤邮件系统,使用redis构建一个BloomFilter可以轻松实现这样的系统。

你可能感兴趣的文章
程序员情商低?看完这 4 类程序员我懂了!
查看>>
《长安十二时辰》里你不能不知道的 IT 技术 | 每日趣闻
查看>>
程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
查看>>
一年参加一次就够,全新升级的 AI 开发者大会议程出炉!
查看>>
基于 XDanmuku 的 Android 性能优化实战
查看>>
基于嵌入式操作系统的物联网安全
查看>>
一个只有 99 行代码的 JS 流程框架
查看>>
移动周刊第 186 期:移动 App 客户端性能优化、iOS 开源库源码解析
查看>>
包学会之浅入浅出 Vue.js:开学篇
查看>>
JavaScriptCore 全面解析 (上篇)
查看>>
移动周刊第 187 期:App 模块化实战经验总结
查看>>
以不一样的视角看物联网协议
查看>>
JavaScriptCore全面解析 (下篇)
查看>>
嵌入式操作系统与物联网演进之路
查看>>
苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
查看>>
Python 玩转物联网之 Micropython GPIO IRQ 处理
查看>>
移动周刊第 188 期:Android 安全性要点与规范核心详析
查看>>
手机为基础的 IoT 布局已经失效,下一代操作系统是什么模样?
查看>>
无线传感器网络使用指南
查看>>
Unity 脚本优化的那些坑
查看>>