Redis 数据类型
Redis支持五种数据类型:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
String(字符串)
STRING是redis中最基本的数据类型,redis中的STRING类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个jpg图片,要注意的是redis中的字符串大小上限是512M。
redis 127.0.0.1:6379> SET key "value"
OK
redis 127.0.0.1:6379> GET key
"value"
在以上我们使用了 Redis 的 SET 和 GET 命令。
Hash(哈希)
HASH类似于Java中的Map,是一个键值对集合,在redis中可以用来存储对象。
redis 127.0.0.1:6379> HMSET key field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET key field1
"Hello"
redis 127.0.0.1:6379> HGET key field2
"World"
我们使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。
每个 hash 可以存储 232 -1 键值对(40多亿)。
List(列表)
LIST是一个简单的字符串列表,按照插入顺序进行排序,我们可以从LIST的头部(LEFT)或者尾部(RIGHT)插入一个元素,也可以从LIST的头部(LEFT)或者尾部(RIGHT)弹出一个元素。
redis 127.0.0.1:6379> lpush key redis
(integer) 1
redis 127.0.0.1:6379> lpush key mongodb
(integer) 2
redis 127.0.0.1:6379> lpush key rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange key 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
Set(集合)
SET是STRING类型的无序集合,不同于LIST,SET中的元素不可以重复。
redis 127.0.0.1:6379> sadd key redis
(integer) 1
redis 127.0.0.1:6379> sadd key mongodb
(integer) 1
redis 127.0.0.1:6379> sadd key rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd key rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers key
1) "redis"
2) "rabbitmq"
3) "mongodb"
以上实例中 rabbitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
ZSET和SET一样,也是STRING类型的元素的集合,不同的是ZSET中的每个元素都会关联一个double类型的分数,ZSET中的成员都是唯一的,但是所关联的分数可以重复。
redis 127.0.0.1:6379> zadd key 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd key 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd key 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> zadd key 0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE key 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"
各个数据类型应用场景
文章参考链接 : (https://www.runoob.com/) https://www.runoob.com/redis/redis-data-types.html