redis数据类型


10033

redis数据类型

redis 支持5种数据类型:

  • string字符串
  • hash 哈希
  • list 列表
  • set 集合
  • zset 有序结合

1.string

stringredis 最基本的数据类型.它是二进制安全的,意味者string 可以包含任何数据,比如jpg或者序列化对象.它最大可以存储512Megabytes .查看

实例:

127.0.0.1:6379> set first_key first_value
OK
127.0.0.1:6379> get first_key
"first_value"

2.hash

hash 是一个键值对的集合.它是对string 类型的fieldvalue 的映射表,hash 特别适合存储对象.

127.0.0.1:6379> del first_key
(integer) 1
127.0.0.1:6379> HMSET test field1 hello field2 world
OK
127.0.0.1:6379> HMGET test field1
1) "hello"
127.0.0.1:6379> HMGET test field2
1) "world"
  • 每个hash可以存储 2的32次方减去1个元素.

3.list

redis列表是简单的字符串列表,按照插入顺序排序.可以添加一个元素到列表的头部和尾部.

一个列表的元素的最大长度为2的32次方减去1个元素.

127.0.0.1:6379> del test
(integer) 1
127.0.0.1:6379> LPUSH test redis
(integer) 1
127.0.0.1:6379> LPUSH test python
(integer) 2
127.0.0.1:6379> LRANGE test 0 10
1) "python"
2) "redis"

4.set

setstring类型的无序集合.集合是通过哈希表实现的,所以添加,删除,查找的复杂度是O(1).

127.0.0.1:6379> DEL test
(integer) 1
127.0.0.1:6379> SADD test redis
(integer) 1
127.0.0.1:6379> SADD test mysql
(integer) 1
127.0.0.1:6379> SADD test mongodb
(integer) 1
127.0.0.1:6379> SMEMBERS test
1) "mysql"
2) "mongodb"
3) "redis"
  • 最大长度是2的32次方减去1个元素.
  • sadd 添加,smembers 列出.

5.zset

zset 一样是string 类型元素的集合,且不允许出现重复的成员,不同的是每个元素都会关联一个double类型的score.redis是通过分数来为集合中的成员进行从小到大的排列.

zset 的成员是唯一的,但是score可以重复.

127.0.0.1:6379> del test
(integer) 1
127.0.0.1:6379> ZADD test 0 redis
(integer) 1
127.0.0.1:6379> zadd test 0 mysql
(integer) 1
127.0.0.1:6379> zadd test 0 mongodb
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE test 0 1000
1) "mongodb"
2) "mysql"
3) "redis"
  • zadd 添加.zrangebyscore 列出.

6.各个数据类型应用场景

类型简介特性场景
String二进制安全可以包含任数据
hash键值对集合
(类似与python dict)
存储多个对象.可以像数据库
一样针对一个属性修改.
存储,读取,修改
list双向链表增删快.消息队列
最新消息排行等
set哈希表实现,元素不重复为集合提供了求交集,并集,差集等操作共同好友
统计访问网站的独立IP.
好友推荐等
zsetset 中元素增加一个权重参数score,元素按照score有序排列自动排序排行榜
带权重的消息队列

7.状态码

integer 1:表示设置成功

integer 0:表示设置失败.


文章作者: 文彦
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 文彦 !
评论
  目录