简述
Redis 是一种开源内存数据存储系统,可被用于数据库、缓存、消息服务等场景。Redis遵循BSD授权协议。
支持数据类型
Redis不止是简单的键值存储,同时也支持如下数据类型:
1. Strings(字符串):二进制安全的字符串类型。
2. Lists(列表):一种安插入顺序记录的字符串元素集合,类似链表结构。
3. Sets(集合):记录一组无序切不重复的字符串元素。
4. Sorted sets(有序集合):类似集合,但每个元素关联一个浮点数,称为评分。集合内元素按评分排序。
5. Hashes(哈希表):记录一组键值对,键和值都是字符串。
6. Bitmap (位图表): 将字符串视作位数组进行操作。例如:可以设置或清理单个bit位,统计bit位为1的位数量,查找第一个1bit位置等操作。
7. HyperLogLogs(统计计数器): 一个概率数据结构,用于快速方便的预测集合的基数。
8. Streams(数据流): 一个只能追加元素的日志数据结构。
数据备份
Redis 内建冗余容错, Lua 脚本支持, LRU 淘汰策略, 事务和不同级别的写盘策略,通过Redis Sentinel提供高可用支持,Redis Cluster提供自动分区。
操作举例
通过Redis,你可以使用如下原子操作:追加字符串,增加哈希表的数值,向列表追加元素,求集合交、并、差集,获取排序列表中的高分元素。
性能设计
为了获取最大性能, Redis 使用内存数据结构。根据使用场景支持一次性内存映射磁盘,或者记录每次操作到操作日志。如果你只需要一个支持丰富数据结构的网络缓存,也可以选择关闭持久化过程。
复制策略
Redis 也支持简单易用的主从异步复制,首次快速无阻塞同步和网络分区时的自动重连再同步策略。
安装环境支持
Redis由ANSI C语言编写,可以工作在大多数POSIX系统下而不需要额外依赖。(比如:Linux、*BSD、OS X)Linux和OS X是Redis测试,开发较多的操作系统, 官方推荐使用Linux系统部署Redis。
Redis 只保证尽量支持Solaris-derived系统。(例如:SmartOS)
Windows系统下并无官方支持,但微软开发并支持了一个win 64 Redis版本。