Redis (Remote Dictionary Service) 数据类型类似于编程语言的基础数据类型,所以开发人员感觉很自然。每个数据类型都支持适用于其类型的操作。受支持的数据类型包括:
1 2 3 4 5 6 7 8 | redis> SET firstname chen OK redis> SET lastname guang OK redis> GET firstname "chen" redis> GET lastname "guang" |
1 2 3 4 | redis> LPUSH words hello (integer) 1 redis> LPUSH words kitty tom john sarh (integer) 5 |
1 2 3 4 5 6 7 8 9 10 | redis> SADD one austerity (integer) 1 redis> SADD one pragmatic (integer) 1 redis> SADD one moratorium (integer) 1 redis> SADD one socialism (integer) 1 redis> SADD one socialism (integer) 0 |
1 2 3 4 5 6 7 8 9 10 | redis> ZADD wordswithlength 9 austerity (integer) 1 redis> ZADD wordswithlength 7 furtive (integer) 1 redis> ZADD wordswithlength 5 bigot (integer) 1 redis> ZRANGE wordswithlength 0 -1 1) "bigot" 2) "furtive" 3) "austerity" |
1 2 3 4 5 6 7 8 9 10 11 12 | redis> HSET user:1 name cin (integer) 1 redis> HSET user:1 lastname chen (integer) 1 redis> HGET user:1 redis> HGET user:1 name "cin" redis> HGETALL user:1 1) "name" 2) "cin" 3) "lastname" 4) "chen" |
Redis 可通过两种方式来持久存储数据:RDB 和 AOF。RDB 持久性按照指定的间隔对数据集执行时间点快照。它可能会丢失一些数据,但它非常快。AOF 的持久性要长得多,而且记录了服务器收到的每个写入操作。这些写入操作在服务器启动时重新执行,重新构建原始数据集(如果数据量较大,可能造成IO飙升)。在查询 Redis 时,将从内存中获取数据,不会从磁盘获取数据,Redis 对内存中存储的键和值执行所有操作。
Redis 采用了一种客户端/服务器模型,借用该模型来监听 TCP 端口并接受命令。Redis 中的所有命令都是原子性的,所以可以从不同的客户端处理同一个键,没有任何争用条件。
Redis 支持消息的 pub(发布)/sub(订阅)。
Redis 命令参考