Redis(二):常用命令

Redis如下几个指令经常适用,记录如下:

select db_index

一个Redis实例默认有16个数据库,从0-15,每个数据库是独立存在的,如果没指定,默认操作0号数据库。在第一篇说到,Redis是单线程的,如果在一个Redis实例同时使用多个数据库,彼此之间的操作效率上还是有一定影响的,而且,如果管理不当,很容易弄错数据库编号,操作不必要损失,因此,推荐默认多个Redis实例(对应多个端口),每个实例使用0号数据库,以实例来区分不同项目和测试目的。

keys <匹配表达式>

keys命令用于列出当前Redis实例的所有key,加*列出所有key,其他则匹配对应key:
这里写图片描述
如下则是显示以h开头的key:
这里写图片描述
注意:keys命令会遍历所有键,因此,如果有几百万条数据甚至更多的话,这样会容易搞崩服务器,因此慎用这条命令,推荐使用2.8版本以后新增的命令: scan。

scan

这里写图片描述
现在Redis实例有20个key:
这里写图片描述
换成用scan来遍历:
这里写图片描述
第一次遍历游标cursor是0,遍历后返回下一次遍历开始的游标和这次遍历返回的键,然后第二次从游标5开始,当返回游标值返回0时遍历介绍,以这种方式在遍历时降低了Redis的阻塞,但是,如果在多次遍历是有新建加入或旧键值变化,可能无法检测到,因此,使用时根据实际需要权衡使用。对应Redis的不同数据类型,分别有hscan, sscan, zscan,用法类似。

dbsize

查看当前实例有多少个key,因为redis有一个全局变量保存该值,因此,数据量再多执行这条命令也没事。

exists key

查看对应key是否存在

del [key1, key2, key3 …]

删除指定key

expire key seconds

设定指定的key多少秒后过期,到期后该key会被自动删除,注意,如果设置的时间为负数,key会立即被删除,等同于del命令。

expireat key timestamp

设定key在指定时间错过期

persist key

清除key的过期时间

ttl key

获取指定key的剩余过期秒数,返回大于0整数对应剩余的描述,返回-1则键永久有效,-2则为键不存在。

type key

返回指定key的数据类型,如string, hash, list等。

incr/decr key

指定key的值自增或自减1,注意,若key不存在,则默认新建key然后自增,且key对应值需要整数,否则,报错。

incrby/decrby key number

指定key以指定number自增或自减

rename key newkey

对key重新命名为newkey,注意,如果newkey原本有值,其值会被覆盖。因此,建议使用替代的命令renamex来进行重命名操作,它会在newkey不存在的时候才进行覆盖。

randomkey

随机返回一个键

move key db

将key移动到另一个db上

  1. dump key
  2. restore key ttl value

第1步在源Redis对key的值采用RDB格式进行序列化
第2步会在目标Redis对第1步序列化的key值进行反序列化,ttl标准过期时间,0表示不过期。
注意:这两个过程不是原子性操作的,相当于两个连接。如要进行数据迁移,建议使用migrate,它具有原子性操作,只需要在源Redis执行此命令即可。

migrate

这里写图片描述
如要在迁移后删除源Redis该键,不加copy参数,否则添加, replace是目标Redis存在同样key是否覆盖。

flushdb

清除当前数据库数据,键比较多时会阻塞,谨慎操作。

flushall

清除所有数据库,键比较多时会阻塞,谨慎操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值