Redis五大数据类型常用命令

本文详细介绍了Redis中的五种主要数据类型:String、List、Set、Zset和Hash,包括各自的特点、操作方法以及如何设置过期时间和持久化策略。
摘要由CSDN通过智能技术生成
Redis的五大数据类型
1.redis键(key)

​ 1)查看当前库的所有键

127.0.0.1:6379> keys *

​ 2)判断某个键是否存在

127.0.0.1:6379> exists <key> 
例如 :127.0.0.1:6379> exists t1

​ 3)查看键对应的value的类型

127.0.0.1:6379> type <key>

​ 4) 删除某个键

127.0.0.1:6379> del <key>

​ 5)设置过期时间,时间以秒为单位

127.0.0.1:6379> expire <key> <second> 

​ 6)查看过期时间,-1表示永不过期,-2表示已过期

127.0.0.1:6379> ttl <key>

​ 7)查看当前库中key的数量

127.0.0.1:6379> dbsize

​ 8)清空当前库

127.0.0.1:6379> flushdb

​ 9)清空所有的库

127.0.0.1:6379> flushall
2.String

​ 2.1 特点

​ 1)String是Redis最基本的类型,适合保存单值类型,即一个key对应一个value。

​ 2) String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

​ 3)一个Redis中字符串value最多可以是512M。

​ 2.2 操作

​ 1)添加键值对

127.0.0.1:6379> set <key> <value>

​ 2)获取键的值

127.0.0.1:6379> get <key>

​ 3)将给定的追加到原值的末尾

127.0.0.1:6379> append <key> <value>

​ 4)获取值的长度

127.0.0.1:6379> strlen <key>

​ 5)当key不存在时设置key的值

127.0.0.1:6379> setnx <key> <value>

​ 6)将key中存储的数字值

127.0.0.1:6379> incr <key>

​ 7)将key中存储的数字值减1

127.0.0.1:6379> decr <key>

​ 8)将key中存储的数字值按照指定步长增

127.0.0.1:6379> incrby <key> <步长>

​ 9)将key中存储的数字值按照指定步长减

127.0.0.1:6379> decrby <key> <步长>

​ 10)同时添加一个或者多个key

127.0.0.1:6379> mset <k1> <v1> <k2> <v2>

​ 11)同时获取一个或者多个key的值

127.0.0.1:6379> mget <k1> <k2> <k3>

​ 12)同时添加一个或者多个key,当且仅当所有给定的key都不存在

127.0.0.1:6379> msetnx <k1> <v1> <k2> <v2>

​ 13)获取值的子串

127.0.0.1:6379> getrange <key> <start> <end>

​ 14)从指定的开始位置覆盖旧值

127.0.0.1:6379> setrange <key> <start> <value>

​ 15)同时设置值和过期时间

127.0.0.1:6379> setex <key> <seconds> <value>

​ 16)设置新值的同时获取旧值

127.0.0.1:6379> getset <key> <value>
3.List

​ 3.1 特点

​ (1)单键多值。

​ (2)Redis List是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

​ (3)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差 。

​ 3.2 常用操作

​ 1)从左边插入一个或多个值

127.0.0.1:6379> lpush <key> <element…> 

​ 2)从右边插入一个或多个值

127.0.0.1:6379> rpush <key> <element…>

​ 3)从左边删除一个值(值在键在,值光键亡)

127.0.0.1:6379> lpop <key> 

​ 4)从右边删除一个值(值在键在,值光键亡)

127.0.0.1:6379> rpop <key> 

​ 5)从key1列表右边删除一个值,插入到key2列表左边

127.0.0.1:6379> rpoplpush <key1> <key2>

​ 6)按照索引下标范围获取元素(从左到右)

127.0.0.1:6379> lrange <key> <start> <stop>

​ 7)按照索引下标获取元素(从左到右)

127.0.0.1:6379> lindex <key> <index>

​ 8)获取列表长度

127.0.0.1:6379> llen <key>

​ 9)在指定的前面或者后面插入

127.0.0.1:6379> linsert <key> before|after <pivot> <element>

​ 10) 从左边删除count个指定的value

127.0.0.1:6379> lrem <key> <count> <element>

4.Set

​ 4.1 特点

​ (1)set中的元素是无序不重复的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,

​ (2)Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。

​ 4.2 常用操作

​ 1)将一个或者多个member元素加入到集合中,已经存在的member将被忽略

127.0.0.1:6379> sadd <key> <member…>

​ 2)取出集合的所有值

127.0.0.1:6379> smemebers  <key>

​ 3)判断集合是否包含指定的member,包含返回1,不包含返回0

127.0.0.1:6379> sismember <key> <member>

​ 4)返回集合的元素个数

127.0.0.1:6379> scard <key>

​ 5)从集合中删除指定的元素

127.0.0.1:6379> srem <key> <member…>

​ 6)随机从集合中删除一个值

127.0.0.1:6379> spop <key>

​ 7)随机从集合中取出n个值,不会从集合中删除

127.0.0.1:6379> srandmember <key> <count>

​ 8)返回多个集合的交集元素

127.0.0.1:6379> sinter <key…>

​ 9)返回多个集合的并集元素

127.0.0.1:6379> sunion <key…> 

​ 10)返回多个集合的差集元素

127.0.0.1:6379> sdiff <key…> 

5.Zset

​ 5.1 特点

​ (1)Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不 同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从 最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。

​ (2)因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来 获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一 个没有重复成员的智能列表。

​ 5.2 常用操作

​ 1)往集合中添加指定的 member 及score

127.0.0.1:6379> zadd <key> [<score> <member> … ]

​ 2)从集合中取出指定下标范围的数据,正序取

127.0.0.1:6379> zrange <key> <start> <stop> [WITHSCORES] 

​ 3)从集合中取出指定下标范围的数据,倒序取

127.0.0.1:6379> zrevrange <key> <start> <stop> [WITHSCORES] 

​ 4)从集合中取出指定score范围的数据,默认从小到大

127.0.0.1:6379> zrangebyscore <key> <min> <max> [WITHSCORES]

​ 5)从集合中取出指定score范围的数据,从大到小

127.0.0.1:6379> zrevrangebyscore  <key>  <max> <min> [WITHSCORES]

​ 6)给集合中指定member的score增加increment

127.0.0.1:6379> zincrby <key> <increment> <member>

​ 7)删除集合中指定的member

127.0.0.1:6379> zrem <key> <member…>

​ 8)统计指定score范围的元素个数

127.0.0.1:6379> zcount <key> <min> <max>

​ 9)返回集合中指定member的排名,排名从0开始

127.0.0.1:6379> zrank   <key>  <member>
6.Hash

​ 6.1 特点

​ (1)Redis hash是一个键值对集合。

​ (2)Redis hash的值是由多个field和value组成的映射表。

​ (3)类似Java里面的Map<String,Object>。

​ 6.2 常用操作

​ 1)给集合中添加指定的 -

127.0.0.1:6379> hset <key>  [<field> <value> …]	

​ 2)给集合中添加指定的 - ,当指定的field不存在时

127.0.0.1:6379> hsetnx <key> <field> <value> 

​ 3)取出集合中指定field的value

127.0.0.1:6379> hget <key> <field> 

​ 4)判断集合中是否存在指定的field

127.0.0.1:6379> hexists <key> <field> 

​ 5)列出集合中所有的field

127.0.0.1:6379> hkeys <key> 

​ 6)列出集合中所有的value

127.0.0.1:6379> hvals <key> 

​ 7)给集合中指定filed的value值增加increment

127.0.0.1:6379> hincrby  <key> <field> <increment> 

  • 52
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值