开发学院

您的位置:首页>教程>正文

教程正文

Redis 数据类型

Redis 数据类型

Redis支持5种类型的数据类型。

字符串

Redis字符串是一个字节序列,Redis中的字符串是二进制安全的,这意味着Redis的字符串可以包含任何数据,比如jpg图片或者序列化的对象 。因此,您可以在一个字符串中存储多达512MB的内容。

例子

redis 127.0.0.1:6379> SET name "kaifaxueyuan"
OK
redis 127.0.0.1:6379> GET name
"kaifaxueyuan"

在上面的示例中,SET和GET是Redis命令,name是在Redis中使用的key,kaifaxueyuan是存储在Redis中的字符串值。

注:字符串值最多可以为512MB。

Hash(哈希)

Redis哈希是键值对的集合。Redis散列在字符串字段和字符串值之间映射。因此,它们用于表示对象。

例子

redis 127.0.0.1:6379> HMSET user:1 username kaifaxueyuan password kaifaxueyuan points 200 
OK 
redis 127.0.0.1:6379> HGETALL user:1  
1) "username" 
2) "kaifaxueyuan" 
3) "password" 
4) "kaifaxueyuan" 
5) "points" 
6) "200"

以上实例中 hash 数据类型存储了包含用户脚本信息的用户对象。 实例中我们使用了 Redis HMSET, HGETALL 命令,user:1 为键值。

每个哈希可以存储多达超过40亿(4294967295)个键值对。


List(列表)

Redis列表是字符串的列表,按插入顺序排序,可以将元素添加到Redis列表的头部或尾部中。

例子

redis 127.0.0.1:6379> lpush kaifaxueyuan redis 
(integer) 1 
redis 127.0.0.1:6379> lpush kaifaxueyuan mongodb 
(integer) 2 
redis 127.0.0.1:6379> lpush kaifaxueyuan rabitmq 
(integer) 3 
redis 127.0.0.1:6379> lrange kaifaxueyuan 0 10  
1) "rabitmq" 
2) "mongodb" 
3) "redis"

列表最多可存储超过40亿个(4294967295)元素。


Set(集合)

Redis集合是一个无序的字符串集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。。

sadd 命令

添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。

例子

redis 127.0.0.1:6379> sadd kaifaxueyuan redis 
(integer) 1 
redis 127.0.0.1:6379> sadd kaifaxueyuan mongodb 
(integer) 1 
redis 127.0.0.1:6379> sadd kaifaxueyuan rabitmq 
(integer) 1 
redis 127.0.0.1:6379> sadd kaifaxueyuan rabitmq 
(integer) 0 
redis 127.0.0.1:6379> smembers tutoriallist  

1) "rabitmq" 
2) "mongodb" 
3) "redis"

注意-在上面的示例中,rabitmq是两次添加的,但是由于集合的唯一属性,它只添加一次。

每个集合中的最大成员数超过40亿(4294967295)。


zset(sorted set:有序集合)

Redis有序集合类似于Redis集合。不同的是,有序集合的每个成员都与一个分数(double类型)相关联,用于从最小到最大排序。虽然成员是独一无二的,但分数可能会重复。

例子

redis 127.0.0.1:6379> zadd tutoriallist 0 redis 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 1 
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq 
(integer) 0 
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000  

1) "redis" 
2) "mongodb" 
3) "rabitmq"