在这篇文章中,我们将谈论 Redis(REmote DIctionary Server)。Redis是一个开源的、内存式的、键值存储数据库。它也被称为作为键值存储的字典服务器,这些键值不仅可以是字符串,还可以是hashes(哈希类型)、sets(集合)、lists(列表) 和sorted sets(有序集合)。
Redis与Memcached外形上非常相似,但它们之间也有一些差异,如下图:
特性细节
内存式: Redis将键值存储在主存中,用于快速地读写访问。
复制: Redis支持主从复制。数据读取在slave完成,而数据写入在 master 完成。复制提供可伸缩性和可用性。任何一个slave宕机,其他的slave还可以提供数据访问。
数据结构: Redis不仅存储字符串,还支持列表,集合,哈希和有序集合。
虚拟内存: Redis使用RAM作为内存式存储。但是,在内存不足的情况下,它使用虚拟内存来保存数据。
发布/订阅模型: Redis支持创建发布和订阅通道,这样Redis客户端可以订阅任意的通道来进行数据消费,并且任何已订阅该通道的客户端可以发布数据。
数据持久性: Redis将内存中的数据定期保存到文件系统中。当Redis节点故障时,数据可以从Redis数据文件恢复。
Redis有丰富的SDK支持。你可以在这里找到客户端库列表。
有很多高流量网站已经使用了Redis,下面给出了其中一些。
- Stack Overflow
- Craigslist
- Rackspace
- Plugin support for Magento
- GitHub
Redis多年来保持增长趋势。来自 DB-Engines对Redis和Memcached的统计数据如下表所示。那么,DB-Engines具体是如何统计趋势的,请点击。