Redis[1]是一种基于键值对(key-value)的NoSQL数据库,与很多键值对
数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、
list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、
HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此
Redis可以满足很多的应用场景,而且因为Redis会将所有数据都存放在内存
中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利
用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时
候,内存中的数据不会“丢失”。除了上述功能以外,Redis还提供了键过
期、发布订阅、事务、流水线、Lua脚本等附加功能。总之,如果在合适的
场景使用好Redis,它就会像一把瑞士军刀一样所向披靡。
Redis的全称是REmote Dictionary Server,它主要提供了5种数据结
构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础之上演变
出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”,并且随着
LBS(Location Based Service,基于位置服务)的不断发展,Redis3.2版本中
加入有关GEO(地理信息定位)的功能.
- 提供了键过期功能,可以用来实现缓存。
- 提供了发布订阅功能,可以用来实现消息系统。
- 支持Lua脚本功能,可以利用Lua创造出新的Redis命令。
- 提供了简单的事务功能,能在一定程度上保证事务特性。
- 提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到
- Redis,减少了网络的开销