2.2 redis数据类型
2.2.1 字符串
Redis 字符串是一个字节序列。 在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。
redis 127.0.0.1:6379> SET name "liudanbing"
OK
redis 127.0.0.1:6379> GET name
"liudanbing"
在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "liudanbing" 是存储在 Redis 的键和字符串值。
2.2.2 哈希
Redis哈希是键值对的集合。
Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。
127.0.0.1:6379> HMSET user:1 username liudanbing password ace points 200
OK
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "liudanbing"
3) "password"
4) "ace"
5) "points"
6) "200"
在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。
这里 HSET,HGETALL 是 Redis 命令同时 user:1 也是一个键。
2.2.3 列表
Redis 列表是简单的字符串列表,通过插入顺序排序。可以添加一个元素到 Redis 列表的头部或尾部。
redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
列表的最大长度为 232 - 1 个元素(4294967295,每个列表的元素超过四十亿)。
2.2.4 集合
Redis 集合是字符串的无序集合。
在 Redis 可以添加,删除和测试成员存在的时间复杂度为 O(1)。
127.0.0.1:6379> sadd myset redis
(integer) 1
127.0.0.1:6379> sadd myset mongodb
(integer) 1
127.0.0.1:6379> sadd myset rabitmq
(integer) 1
127.0.0.1:6379> sadd myset rabitmq
(integer) 0
127.0.0.1:6379> smembers myset
1) "mongodb"
2) "redis"
3) "rabitmq"
注:在上面的例子中 rabitmq 被添加两次,但由于它是只集合具有唯一特性。集合中的成员最大数量为 232 - 1(4294967295,每个集合有超过四十亿条记录)。
2.2.5 排序集合
不同的是,一个有序集合的每个成员都可以排序,就是为了按有序集合排序获取它们,按权重分值从最小到最大排序。虽然成员都是独一无二的,按权重分数值可能会重复。
127.0.0.1:6379> zadd mysortset 0 redis
(integer) 1
127.0.0.1:6379> zadd mysortset 2 mongodb
(integer) 1
127.0.0.1:6379> zadd mysortset 1 rabitmq
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE mysortset 0 1000
1) "redis"
2) "rabitmq"
3) "mongodb"
全部数据类型相关操作指令在 http://redis.cn/commands.html有详细介绍