跳至主要內容

key通用指令

张威大约 3 分钟redisredis基础

key通用指令

key特征: key是一个****,通过key获取redis中保存的数据

key应该设计那些操作?

  • 对于key自身状态的相关操作:删除,判定存在,获取类型等
  • 对于key有效性控制相关操作:有效期设定,判定是否有效,有效状态的切换等
  • 对于key快速查询操作:按指定条件查询key

一、key基本操作

删除指定key

del key

获取key是否存在

exists key

获取key的类型

type key

二、key扩展操作(时效性控制)

为指定key设置有效期

expire key seconds
pexpire key milliseconds
expireat key timestamp
pexpireat key millinseconds-timestamp

获取key剩余的有效时间

ttl key
pttl key

对于ttl命令的返回值

  • -2key不存在,或存在已失效
  • -1key没设置有效期
  • 剩余有效时间:key设置了有效时间,还没过期

切换key从时效性转换为永久性

persist key

如果key处于有时效控制的状态,

三、key扩展操作(根据ex查询key)

查询key

keys pattern  # pattern写正则即可

四、key其他操作(改名、排序…)

为key改名

rename key newkey    # 如果已经有newkey的数据,直接覆盖
renamenx key newkey  # 不覆盖rename,如果已经有,则失败

对所有key排序,,不修改数据,只是返回排序结果

sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]

其他key通用操作

help @generic

五、数据库通用操作

key重复问题: key是由程序员定义的,redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key。数据不区分种类,类别混杂在一起,极易出现重复或冲突

解决方案: redis为每个服务器提供有16个数据库,编号从0-15(默认使用0),

切换数据库

select index       # select 11

其他操作

quit
ping               # 测试和服务器的连接
echo message

数据移动

move key db       # 若当前库没有key或目标库已经存在同名key,则返回0操作失败

数据清除

dbsize               # 获取当前库中,key的数量
flushdb              # 清空当前库的数据
flushall             # 清空所有库的数据