Redis数据类型
Redis支持5种类型的数据类型。
字符串(Strings)
Redis字符串是字节序列。 Redis中的字符串是二进制安全的,这意味着它们的已知长度不受任何特殊终止字符的确定。因此,你可以在一个字符串中存储最多512 MB的任何内容。
redis 127.0.0.1:6379> SET name "newbiego" OK redis 127.0.0.1:6379> GET name "newbiego"
在上面的示例中,SET和GET是Redis命令,name是Redis中使用的密钥,并且newbiego是存储在Redis中的字符串值。
注意:字符串值的最大长度为512兆字节。
哈希(Hashes)
Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。
redis 127.0.0.1:6379> HMSET user:1 username newbiego password newbiego points 200 OK redis 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "newbiego" 3) "password" 4) "newbiego" 5) "points" 6) "200"
在上面的示例中,哈希数据类型用于存储包含用户基本信息的用户对象。这里HMSET,HGETALL是Redis的命令,而user: 1是键。
每个哈希最多可存储2个32-1个字段值对(超过40亿个)。
列表(Lists)
Redis列表只是字符串列表,按插入顺序排序。你可以将元素添加到头部或尾部的Redis列表中。
redis 127.0.0.1:6379> lpush newbiegolist redis (integer) 1 redis 127.0.0.1:6379> lpush newbiegolist mongodb (integer) 2 redis 127.0.0.1:6379> lpush newbiegolist rabitmq (integer) 3 redis 127.0.0.1:6379> lrange newbiegolist 0 10 1) "rabitmq" 2) "mongodb" 3) "redis"
列表的最大长度为232-1个元素(4294967295,每个列表超过40亿个元素)。
集合(Sets)
Redis集合是无序的字符串集合。在Redis中,你可以添加,删除和测试O(1)时间复杂度中成员的存在。
redis 127.0.0.1:6379> sadd newbiegolist redis (integer) 1 redis 127.0.0.1:6379> sadd newbiegolist mongodb (integer) 1 redis 127.0.0.1:6379> sadd newbiegolist rabitmq (integer) 1 redis 127.0.0.1:6379> sadd newbiegolist rabitmq (integer) 0 redis 127.0.0.1:6379> smembers newbiegolist 1) "rabitmq" 2) "mongodb" 3) "redis"
注意:
在上面的示例中,rabitmq会被添加两次,但是由于集合的唯一属性,它只会被添加一次。
一组成员的最大数量为232-1个(4294967295,每组成员超过40亿)。
有序集合(Sorted Sets)
Redis排序集类似于Redis集,即字符串的非重复集合。区别在于,排序集的每个成员都与一个分数相关联,该分数用于从最小分数到最大分数获取有序排序的集合。虽然成员是唯一的,但分数可以重复。
redis 127.0.0.1:6379> zadd newbiegolist 0 redis (integer) 1 redis 127.0.0.1:6379> zadd newbiegolist 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd newbiegolist 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd newbiegolist 0 rabitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE newbiegolist 0 1000 1) "redis" 2) "mongodb" 3) "rabitmq"