redis
数据类型
redis
支持5种数据类型:
string
字符串hash
哈希list
列表set
集合zset
有序结合
1.string
string
是redis
最基本的数据类型.它是二进制安全的,意味者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
类型的field
和value
的映射表,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
set
是string
类型的无序集合.集合是通过哈希表实现的,所以添加,删除,查找的复杂度是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
.
好友推荐等zset
为 set
中元素增加一个权重参数score
,元素按照score
有序排列自动排序 排行榜
带权重的消息队列
7.状态码
integer 1
:表示设置成功
integer 0
:表示设置失败.