redis数据类型
Posted tulintao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis数据类型相关的知识,希望对你有一定的参考价值。
redis支持五种数据类型:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
string(字符串)
string时redis最基本的类型,一个key对应一个value
string类型是二进制安全的,也就是redis可以包含任何数据。比如jpg图片或者序列化的对象
string是redis最基本的数据类型,string类型的值最大能存储512MB
127.0.0.1:6379> set runood ‘william林涛‘ OK 127.0.0.1:6379> get runood william林涛 127.0.0.1:6379>
调用了redis的set和get命令。这里面的键是runood,对应的值就是‘runood’
hash(哈希)
redis hash是一个键值对集合
redis hash是一个string类型的field和value的映射表,hash适合用于存储对象
当你再次使用之前使用过的runood的时候因为你已经使用过了,所以需要先将之前的key删掉
127.0.0.1:6379> del runood 1
127.0.0.1:6379> hmset runood field1 ‘hello‘ field2 ‘world‘ OK 127.0.0.1:6379> hget runood field1 hello 127.0.0.1:6379> hget runood field2 world 127.0.0.1:6379>
这里面用到了redis的hmset和hget命令,hmset设置了两个field=>value对,hget获取相应的field对应的value
每个hash可以存储 232 -1 键值对(40多亿)。
list(列表)
redis列表是简单的字符串列表,按照插入的顺序排序。你可以选择添加一个元素到列表的头部(左边)或者尾部(右边)。
127.0.0.1:6379> del runood 1 127.0.0.1:6379> lpush runood redis 1 127.0.0.1:6379> lpush runood mongodb 2 127.0.0.1:6379> lpush runood mysql 3 127.0.0.1:6379> lrange runood 0 10 mysql mongodb redis 127.0.0.1:6379>
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
Set(集合)
redis的set是string类型的无序集合
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
sadd命令
添加一个string元素到key对应的set集合中,成功就返回1,如果元素已经在集合中就返回0
sadd key member
127.0.0.1:6379> del runood 1 127.0.0.1:6379> sadd runood redis 1 127.0.0.1:6379> sadd runood mongodb 1 127.0.0.1:6379> sadd runood mysql 1 127.0.0.1:6379> sadd runood redis 0 127.0.0.1:6379> smembers runood mysql mongodb redis 127.0.0.1:6379>
在上面的例子中redis添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
zset(sorted set:有序集合)
redis zset和set一样也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数,redis正式通过分数来为集合中的成员进行从小到大的排序
zset的成员是唯一的,但分数(score)却可以重复
zadd命令:添加元素到集合,元素在集合中存在的话就更新对应的分数(score)
zadd key score member
127.0.0.1:6379> del runood 1 127.0.0.1:6379> zadd runood 0 redis 1 127.0.0.1:6379> zadd runood 0 mongodb 1 127.0.0.1:6379> zadd runood 0 mysql 1 127.0.0.1:6379> zadd runood 0 redis 0 127.0.0.1:6379> zrangebyscore runood 0 10 mongodb mysql redis 127.0.0.1:6379>
以上是关于redis数据类型的主要内容,如果未能解决你的问题,请参考以下文章