DBA Redis 通用命令

获取帮助

​ 登录shell:

$ redis-cli -h 192.168.0.120

​ 获取相关有2种形式:

HELP 命令
HELP @群组

​ 1)获取GET命令相关帮助:

192.168.0.120:6379> HELP GET

  GET key                           # 命令格式
  summary: Get the value of a key   # 功能描述
  since: 1.0.0                      # 出现版本
  group: string                     # 所属群组

​ 2)获取string类型命令相关帮助:

192.168.0.120:6379> HELP @string

  APPEND key value
  summary: Append a value to a key
  since: 2.0.0

  BITCOUNT key [start end]
  summary: Count set bits in a string
  since: 2.6.0
  
  ....

key相关操作

基本操作

​ 删除指定key:

del key

​ 移动当前db中的key至指定的db中,默认登录的db为0

move key db

​ 获取key是否存在:

exists key

​ 获取key的类型:

type key

​ 获取键总数:

dbsize
# dbsize 命令在计算键总数时不会遍历所有键,而是直接过去Redis中内置的键总数变量

​ 获取所有key,危险操作!

keys *     
# 实际生产中应当禁止大范围查询,如keys \*,这样的操作会使内存压力陡增!造成Redis服务崩溃!

​ 增量式迭代获取key,对于内存占用大的数据非常有用

scan cursor [MATCH pattern] [COUNT count] [TYPE type]

- cursor:游标
- match:匹配指定的key,默认为None,即表示所有的key
- count:每次分配最少获取的个数,默认是None即采用redis默认分片法

高级查询

​ 使用*匹配任意符号,不限数量,使用?配合任意一个符号,使用[]匹配一个指定符号:

keys it*           查询所有以it开头
keys *heima        查询所有以heima结尾
keys ??heima       查询所有前面两个字符任意,后面以heima结尾
keys user:?        查询所有以user:开头,最后一个字符任意
keys u[st]er:1     查询所有以u开头,以er:1结尾,中间包含一个字母,s或t

其他操作

​ 为key更名:

rename key newkey

​ 对所有key排序:

sort

​ 其他key通用操作:

help @generic

时效控制

expire与pexpireat

​ 优惠券活动,如用户获得一个优惠券,你可以使用expire或者pexpireate为其进行设置过期时间。

​ 为指定key设置有效时间

# expire到期时间,以秒为单位
expire key seconds
expireat key timestamp

# pexpire预计时间,以毫秒为单位
pexpire key milliseconds
pexpireat key milliseconds-timestamp

​ 获取key的有效时间:

# expire的获取
ttl key

# pexpireat的获取
pttl key

# 返回结果 +n 代表剩余过期时间
# 返回结果 -1 代表永不过期
# 返回结果 -2 代表键不存在

​ 将key从时效性转换为永久性:

persist key	

ttl与操作演示

​ 操作演示:

192.168.0.120:6379> set k1 v1
OK
192.168.0.120:6379> pexpire k1 5
(integer) 1  # 代表成功
192.168.0.120:6379> ttl k1
(integer) 5
192.168.0.120:6379> ttl k1
(integer) 3
192.168.0.120:6379> ttl k1
(integer) 1
192.168.0.120:6379> ttl k1
(integer) 0
192.168.0.120:6379> ttl k1
(integer) -2  # 代表被删除

​ 如果是一个未被设置过期时间的key,则使用ttl获取到的值是-1:

192.168.0.120:6379> SET k1 v1
OK
192.168.0.120:6379> ttl k1
(integer) -1

强烈注意

​ 如果一个被设置了TTL的key对其重新进行赋值,则TTL失效。

​ 如下所示,假如用户有一个优惠券,目前正在倒计时中。

​ 突然领导发话将这个优惠券的额度从100加为200,要注意了,一旦执行该操作该优惠券就会永不过期:

# 本身是100元优惠券
192.168.0.120:6379> set k1 100
OK

# 开始设置过期时间
192.168.0.120:6379> expire k1 100
(integer) 1

# 正常倒计时
192.168.0.120:6379> ttl k1
(integer) 85

192.168.0.120:6379> ttl k1
(integer) 77

# 重新赋值
192.168.0.120:6379> set k1 200
OK

# 永不过期
192.168.0.120:6379> ttl k1
(integer) -1
posted @ 2021-03-30 19:25  云崖君  阅读(70)  评论(0编辑  收藏  举报