redis常用命令及使用场景
一:redis的常用命令
1.全局命令: 1.1.
keys * 查看所有键 1.2.
dbsize 键总数 dbsize 命令在计算键总数时不会遍历所有键,而是直接获取redis内置的键总数变量。所以dbsize命令的时间复杂度是O(1)。而keys命令会遍历所有键。,所以它的时间复杂度是O(n) 1.3.
exists key 检查键是否存在。如果键存在则返回1,不存在则返回0. 1.4.
del key [key ...] 删除键 1.5. 键过期
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
- expire key seconds 键在second秒后过期
- expireat key timestamp 键在秒级时间戳timestamp后过期
- pexpire key milliseconds 键在 milliseconds毫秒后过期
- pexpireat key millseconds-timestamp 键在毫秒级时间戳后过期
但无论使用过期时间还是时间戳,秒级还是毫秒级,在redis内部最终使用的都是pexpireat
1.7.rename key newkey 键重命名
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。如果在rename之前,键已经存在,那么它的值也将会被覆盖。为了防止被强行rename,redis提供了renamenx 命令,确保 只有newkey不存在时才被覆盖。
在使用重命名命令时,有两点需要注意:
- 由于重命名键期间会执行del命令删除旧的键,如果键对应的值比较大,会存在阻塞redis的可能性,这点不要忽视。
- 如果rename和renamenx 中的key 和newkey如果是相同的,在redis3.2和之前版本结果略有不同。
redis3.2 会返回OK,之前的版本会提示错误。(ERR source and destination object are the same)
1.8.randomkey 随机返回一个键
1.9.查询键的剩余过期时间
ttl命令和pttl 都可以查询键的剩余过期时间,但是pttl的精度更高可以达到毫秒级别。有三种返回值
- 大于等于0的整数:键剩余的过期时间
- -1:键没有设置过期时间
- -2:键不存在
1.10.persist 命令可以将键的过期时间清除
2.字符串类型常用命令 2.1. set key value [ex seconds] [px milliseconds] [nx|xx] 设置值 ex seconds 为键设置秒级过期时间‘ px milliseconds 为键设置毫秒级过期时间‘ nx 键必须不存在才可以设置成功,用于添加 xx 与nx相反,键必须存在才可以设置成功,用于更新 除了set 选项,redis还提供了 setnx和 setex 两个命令。他们的作用和ex和nx选项是一样的。 2.2. get key 获取值 如果要获取的键不存在,则返回nil 2.3. mset key value [ key value ] 批量设置值 2.4. mget key[key ...] 批量获取值 2.5. incr key 计数 incr 命令用于对值做自增操作,返回结果分为三种情况
- 值不是整数,返回错误
- 值是整数,返回自增后的结果
- 键不存在,按照值为0自增,返回结果为1
- count>0,从左到右,删除最多count个元素
- count<0 从右到左,删除最多count绝对值个元素
- count=0,删除所有
5.集合
5.1. sadd key element [ element ...]添加集合元素。返回结果为添加成功的个数 5.2. srem key element [ element ...] 删除元素。 返回结果为删除成功的个数 5.3. scard key 计算元素个数。 scard 的时间复杂度为o(1),它不会遍历集合所有元素,而是直接用redis 内部的变量 5.4. sismember key element 判断元素是否在集合中 5.5. srandmember key [count] 随机从集合返回指定个数元素 [count] 是可选参数,如果不写默认为1 5.6.spop key 从集合随机弹出元素 标注:从redis3.2 版本开始,spop 也支持[count] 参数。srandmember 和spop 都是随机从集合选出元素,两者不同的是spop命令执行后,元素会从集合中删除,而srandmember不会。 5.7. smember key 获取所有元素 5.8. sinter key [key ...] 求多个集合的交集 5.9. suinon key [key ...] 求多个集合的并集 5.10. sdiff key [key ...] 求多个集合的差集 5.11.将交集、并集、差集的结果保存 sinterstore destination key [key ...] suionstore destination key [key ...] sdiffstore destination key [key ...] 集合间的运算在元素较多的情况下会比较耗时,所以redis提供了上面三个命令将集合间交集、并集、差集的结果保存在 destination key 中。 6.有序集合 6.1. zadd key score member [score member ...] 有关zadd命令有两点需要注意 redis3.2 为zadd命令添加了nx 、xx、ch、incr四个选项- nx:member 必须不存在,才可以设置成功,用于添加
- xx:member 必须存在,才可以设置成功,用于更新
- ch:返回此次操作后,有序集合元素和分数发生变化的个数
- incr:对score 做添加,相当于后面介绍的zincrby

更多精彩