本文共 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数据库。它具有以下特性:
缓存系统
如图所示是一个典型的缓存系统,App Server 总是先访问缓存中的数据,如果不存在再从后端数据库中访问。
计数器
如图所示是微博朋友圈,其点赞数就是计算器很好的例子。利用redis的原子自增指令incr可以实现计数器的功能。消息队列系统
消息队列在日常开发中使用频率很高,Redis也提供了基于内存的消息队列。当对消息可靠性要求不高时,可以使用Redis来作为消息队列。排行榜
如图所示是微博朋友圈人气排行榜,利用redis的sortedset有序的特点,以点赞数来作为排序的参考就可以实现上述功能。实时系统
如图所示是一个实时垃圾邮件过滤邮件系统,使用redis构建一个BloomFilter可以轻松实现这样的系统。