redis常用管理命令

本文介绍了Redis中的一些常用管理命令,包括重命名键、键的迁移、数据序列化与反序列化以及数据库的切换和清理。重命名键时,`renamenx`仅在键不存在时执行。`move`用于在同一实例内的数据库间迁移。`dump`和`restore`配合使用可在不同实例间迁移并控制过期时间。`migrate`命令提供原子性的跨实例迁移。`keys`用于正则匹配查找键,但可能导致阻塞,而`scan`则提供非阻塞的遍历方式。`select`用于切换数据库,`FLUSHDB`清除当前数据库,`FLUSHALL`清除所有数据库。
摘要由CSDN通过智能技术生成
  1. 重命名键
127.0.0.1:6379> get test
"test1"
127.0.0.1:6379> RENAME test newtest
OK
127.0.0.1:6379> get test
(nil)
127.0.0.1:6379> get newtest
"test1"

如果原来的key已经存在,则会覆盖已经存在的值

127.0.0.1:6379> get test3
"3"
127.0.0.1:6379> rename newtest test3
OK
127.0.0.1:6379> get test3
"test1"
127.0.0.1:6379> get newtest
(nil)

renamenx 原来的key不存在才会重命名成功

127.0.0.1:6379> set test4 112121kk
OK
127.0.0.1:6379> RENAMENX test3 test4
(integer) 0
127.0.0.1:6379> dbsize
(integer) 13
127.0.0.1:6379> randomkey
"test_inter"
127.0.0.1:6379> expire test4 600
(integer) 1
127.0.0.1:6379> ttl test4
(integer) 592
127.0.0.1:6379> expire test4 -2
(integer) 1
127.0.0.1:6379> ttl test4
(integer) -2
127.0.0.1:6379> PERSIST test4
(integer) 0
127.0.0.1:6379> ttl test4
(integer) -2

迁移:
move key db
用于redis内部多个数据库之间的迁移

dump与restore
dump key (可以正则)
restore key ttl value
可以在不同实例间迁移
dump会将键值序列化,使用rdb格式
restore反序列化导入redis, ttl=0 时表示没有过期时间

dump test3
操作系统中查看到如下文件:

-rw-r--r--  1 root root      91 Apr 22 09:40 dump.rdb

127.0.0.1:6379> dump test3
"\x00\x05test1\a\x00\xdf\xfaM5\xb8q?["

127.0.0.1:6379> RESTORE test4 0 "\x00\x05test1\a\x00\xdf\xfaM5\xb8q?["
OK
127.0.0.1:6379> 
127.0.0.1:6379> get test4
"test1"

migrate迁移
migrate 用于实例间的迁移, 实际就是将dump restore del进行组合,整个过程是原子性的,
直接在源和目标redis上进行,不需要开启客户端, 迁移restore完成后,发生ok消息,来判断是否进行del操作
MIGRATE host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]

遍历:
keys 正则
例如
keys *
keys test*

当使用keys * 时可能会造成阻塞

scan提供一种非阻塞的渐进式遍历方式, 缺点就是数据可能不准确

127.0.0.1:6379> SCAN 0
1) "11"
2)  1) "testm2"
    2) "count"
    3) "test4"
    4) "counter:__rand_int__"
    5) "test2"
    6) "key:__rand_int__"
    7) "test3"
    8) "test1"
    9) "myset:__rand_int__"
   10) "testm"
127.0.0.1:6379> 
127.0.0.1:6379> SCAN 11
1) "0"
2) 1) "test_inter"
   2) "user"
   3) "mylist"
127.0.0.1:6379> 

切换db
select dbindex db序列号

如select 2

清除db数据
FLUSHDB
该命令只清除当前db的数据

FLUSHALL
清除所有db的数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值