一、单个键管理
针对单个键的命令,有type、del、object, exists, expire等,下面介绍几个重要的
键的重命名
Rename key newkey
192.168.1.10:6379> set python jedis
OK
192.168.1.10:6379> get python
"jedis"
192.168.1.10:6379> rename python java
OK
192.168.1.10:6379> get python
(nil)
192.168.1.10:6379> get java
"jedis"
随机返回一个键
Randomkey
192.168.1.10:6379> randomkey
"a"
192.168.1.10:6379> randomkey
"user:1_2:inter"
dbsize查看多少个键
192.168.1.10:6379> dbsize
(integer) 24
键过期
expkeat时间戳按秒换算的时间戳
192.168.1.10:6379> expireat hello 1469980800
(integer) 1
192.168.1.10:6379> expire not_exist_key 30
(integer) 0
192.168.1.10:6379> set hello world
OK
192.168.1.10:6379> expire hello -2
(integer) 1
192.168.1.10:6379> get hello
(nil)
tt値:大于等于0的整数:键剩余的过期时间
-1:键没有设置过期时间
-2:键不存在
迁移键
Move
Dump + restore
Migrate
Move
Move key db用redis库和库内部进行迁移0-15个库
Dump + restore
Dump key和restore key ttl value多个red is之囘进行数据迁移分2步:
1、在Bredis, dump序列化备份,格式rdb
2、在目标redis上,restore将上面序列化的值进行复原,ttl过期时间ttl=O没有过期时间
.
注意:
1整个迁移过程并非原子性
2迁移的过程开启了两个客户端连接
源redis :
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> dump hello
"\x00\x05world\b\x00\xa0\xfc\xd0;y\xb0\xf8\xfa"
目标redis
127.0.0.1:6379> select 15
OK
127.8.0.1:6379[15]> restore hello 0"\x00\x05world\b\x00\xa0\xfc\xd0;y\xb0\xf8\xfa"
OK
Migrate
3 0.6版本以后的才有,3.0.6版本之前的没有
Dump+restore+del
具有原子性
Migrate host port key | “ ” destination-db timeout [copy] [replace] [keys key[key..]]
Host 目标 redis 的ip
Port目标redis的端口
Key|" "迁移的键,可以是多个键
Destination-db目标redis的数据库的索引(索引就是数据库的编号0-15)
Timeout迁移的超时时间(单位为毫秒)
[copy]迁移后并不删除原数据
[Replace]如果使用replace, migrate不管目标redis是否存在该键都会正常迁移进行数据覆盖(迁移多个键时, 把replace放在keys前面)
[keys key[key..]表示迁移多个键,多余迁移1个键的写这里
命令
作用域
原子性
是否支持多个键
Move
redis内部
有
不支持
Dump+restore
redis之间
没有
不支持
Migrate
redis之间
有
支持
遍历键
Keys patten
Keys *
192.168.1.10:6379> keys *
<