本文我们将探讨 Redis (远程字典服务器). Redis是一个开源的、内存型的键值存储。它也被看作为一个字典型的数据结构服务器,因为它的键值不仅仅是字符串,也有hash、集合、列表和排序的集合等。
Redis 与Memcached 很类似,但它们之间有一些不同.
特性 | Redis | Memcached |
---|---|---|
在内存中 | X | X |
复制 | X | |
分区 | X | |
数据结构 | X | |
验证 | X | X |
发布订阅模型 | X | |
数据持久 | X | |
虚拟内存 | X |
特性详解
在内存中: Redis将键值存储到主存上以便快速读写存取.
复制: Redis支持主备复制. 数据写入主服务器,由从备服务器读取数据. 复制提供了更好的扩展性和可用性. 因为任何一个从服务器失效了也可由其它的从服务器进行数据存取.
数据结构: Redis不仅存储string,它也存储列表、集合、hash和已排序的集合.
虚拟内存: Redis使用RAM作为内存存储. 但当RAM不够用时,它会使用虚拟内存来存储数据.
发布/订阅模型: Redis可创建发布和订阅通道,这样Redis的客户端可订阅任何通道来消费数据,已订阅到通道的客户端也可以发布数据.
数据持久存储: Redis可将内存中的数据定时持久存储到文件系统. 在Redis节点失效期间,数据可从Redis数据文件中恢复出来.
Redis有丰富的SDK支持. 你可以从这里找到客户端库的列表(http://redis.io/clients).
已经有很多高流量的网站已经使用了Redis. 下面列出其中的一部分.
Reids的使用这些年也一直在增长. DB-Engines给出了下面关于Redis和Memcached的统计. DB-Engines得出的趋势如下.