Redis – 数据类型
Redis – 数据类型
Redis 支持 5 种数据类型。
字符串
Redis 字符串是一个字节序列。Redis 中的字符串是二进制安全的,这意味着它们的已知长度不受任何特殊终止字符的影响。因此,您可以在一个字符串中存储多达 512 兆字节的任何内容。
例子
redis 127.0.0.1:6379> SET name "tutorialspoint" OK redis 127.0.0.1:6379> GET name "tutorialspoint"
在上面的例子中,SET和GET是 Redis 命令,name是 Redis 中使用的键,tutorialspoint是存储在 Redis 中的字符串值。
注意– 字符串值的最大长度为 512 兆字节。
哈希值
Redis 哈希是键值对的集合。Redis 哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。
例子
redis 127.0.0.1:6379> HMSET user:1 username tutorialspoint password tutorialspoint points 200 OK redis 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "tutorialspoint" 3) "password" 4) "tutorialspoint" 5) "points" 6) "200"
在上面的例子中,hash数据类型用于存储包含用户基本信息的用户对象。这里HMSET、HGETALL是 Redis 的命令,而user − 1是关键。
每个哈希最多可以存储 2 个32 – 1 个字段值对(超过 40 亿)。
列表
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,每个列表超过 40 亿个元素)。
套
Redis Sets 是一个无序的字符串集合。在 Redis 中,您可以在 O(1) 时间复杂度内添加、删除和测试成员是否存在。
例子
redis 127.0.0.1:6379> sadd tutoriallist redis (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist mongodb (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist rabitmq (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist rabitmq (integer) 0 redis 127.0.0.1:6379> smembers tutoriallist 1) "rabitmq" 2) "mongodb" 3) "redis"
注意– 在上面的例子中,rabitmq被添加了两次,但是由于集合的唯一属性,它只被添加了一次。
集合中的最大成员数为 232 – 1(4294967295,每组超过40亿会员)。
排序集
Redis Sorted Sets 类似于 Redis Sets,非重复的字符串集合。不同之处在于,Sorted Set 的每个成员都与一个分数相关联,该分数用于从最小到最大分数排序的有序集合。虽然成员是独一无二的,但分数可能会重复。
例子
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"