redis数据类型

Posted tulintao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis数据类型相关的知识,希望对你有一定的参考价值。

redis支持五种数据类型:

  1. string(字符串)
  2. hash(哈希)
  3. list(列表)
  4. set(集合)
  5. 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数据类型的主要内容,如果未能解决你的问题,请参考以下文章

redis数据类型和应用场景

Redis的各数据类型的内存占用

redis数据类型是啥?

Redis5数据类型6-Stream

redis基本数据类型

redis支持的数据类型都有哪些