Redis_02_键管理
@
键管理
管理键
(1)重命名键
RENAME 原键名 新键名
1)重命名成功后返回OK;
2)重命名后,原键会被del命令删除;
3)若新键是已存在的键,则原键的值会覆盖新建的值;
(2)重命名键(但新键必须是不存在)
RENAMENX 原键名 新键名
1)重命名成功后返回OK(返回0则代表未成功);
2)重命名后,原键会被del命令删除;
(3)删除键
DEL 键1 键N
1)返回成功删除值的个数;
2)直接删除键,但删除多层数据结构的键时存在阻塞风险;
(4)删除多层数据结构键(lazy free模式,保证不会被阻塞)
UNLINK 键1 键N
1)返回成功删除值的个数;
2)当多层数据结构值个数多于64个时,通过异步删除(先删除值后删除键);
(5)返回指定键的值类型
TYPE 键
1)若键未定义或不存在,则返回none;
(6)查看该键的空闲时间
OBJCET IDLETIME 键
1)该查看不会更新值的lru字段(不更新最后一次被访问时间)
(7)查看键被引用的次数
OBJCET REFCOUT 键
1)若对象为整数且范围在0~9999之间可使用共享对象池以节省内存
(8)命令重命名
RENAME-COMMAND 命令 名称
1)修改后命令原名称不可用,只能使用别名;
2)若修改CONFIG命令,则会导致哨兵不可用;
键过期
键过期:指定键的存活时间(超过时间,自动删除该键)
(1)设定键的过期时间为N秒(执行该命令后开始计时)
EXPIRE 键 N
1)EXPIREAT命令同理,其N相对于时间戳(1970/01/01);
2)对于已存在过期时间的键,执行SET命令会去除其过期时间;
3)Redis不支持对二级数据结构内部值设定过期时间(如:哈希和列表);
(2)设定键的过期时间为N毫秒(执行该命令后开始计时)
PEXPIRE 键 N
1)PEXPIREAT命令同理,其N相对于时间戳(1970/01/01);
//Redis内部均通过PEXPIREAT命令实现
(3)返回指定键的秒级过期时间
TTL 键
1)返回结果有以下3种情况:
返回值 | 含义 |
---|---|
> 0 | 剩余过期时间 |
-1 | 无过期时间 |
-2 | 键不存在 |
(4)返回指定键的毫秒级过期时间
PTTL 键
1)返回结果有以下3种情况:
返回值 | 含义 |
---|---|
> 0 | 剩余过期时间 |
-1 | 无过期时间 |
-2 | 键不存在 |
遍历键
(1)返回Redis中所含键的总数
DBSIZE
1)通过内值变量直接获取并返回,时间复杂度为O(1);
(2)随机返回一个键
RANDOMKEY
KEYS
KEYS:直接式遍历地匹配正则表达式指定键(一次性执行)
1)时间复杂度为O(n),所以执行该命令可能导致Redis阻塞;
2)本质:多次调用SCAN命令
KEYS命令格式:KEYS 正则表达式
1)常用符号如下:
符号 | 含义 |
---|---|
* | 任意多个字符 |
? | 一个字符 |
[字符1, 字符N] | 匹配字符1和字符N |
\x | 转义字符 |
SCAN
SCAN:渐进式遍历地匹配正则表达式指定键(多次执行)
1)每次SCAN命令的执行时间复杂度均为O(1),不存在Redis阻塞风险;
2)SCAN命令只能用于遍历单级键,多级数据结构需使用特定命令;
//HSCAN、SSCAN、ZSCAN可分别遍历哈希、集合、有序集合(用法等同)
SCAN命令格式:SCAN 游标值 选项
1)游标值:当前遍历所执行到的位置,下次可从该位开始(0代表结束);
2)返回结果:匹配成功的键和游标值;
选项 | 含义 |
---|---|
MATCH | 指定正则表达式 |
COUNT | 指定每次遍历键的个数 (默认值10) |
//若遍历过程中存在键的增删改,则不能保证遍历结果的完整性
迁移键
MOVE
MOVE:Redis内部数据库之间的键迁移
1)MOVE命令将当前数据库中的指定键迁移到指定数据库中;
2)命令格式:MOVE 键 数据库
DUMP/RESTORE
DUMP/RESTORE:不同Redis之间的键迁移
1)迁移过程是非原子性(通过客户端分步完成);
2)迁移过程需保证多个客户端连接的稳定性和持久性;
源Redis执行:DUMP 键
目标Redis执行:RESTORE 键 过期时间N 序列码
1)DUMP命令根据指定键生成序列码(RDB格式)(源Redis执行);
2)RESTORE命令根据序列码在Redis上生成键值对(目标Redis执行);
MIGRATE
MIGRATE:DUMP/RESTORE和DEL命令的组合体
1)MIGRATE命令可实现迁移多个键,且具有原子性;
MIGRATE命令格式:
(1)迁移单个键
MIGRATE 目标IP 目标端口 键 目标数据库号 过期时间 选项
(2)迁移多个键
MIGRATE 目标IP 目标端口 "" 目标数据库号 过期时间 键1 键N 选项
选项 | 含义 |
---|---|
COPY | 迁移后保留键 (默认迁移后删除) |
REPLACE | 强制迁移键 (默认目标Redis含有相同键,不会迁移) |
MIGRATE命令的执行流程如下:
1)源Redis指定信息(目标Redis和迁移信息等);
2)源Redis向目标Redis发送迁移数据;
3)目标Redis解析数据并复制;
4)解析数据成功后,返回OK;
5)源Redis选择性是否删除已被迁移键;
如:MIGRATE命令的执行流程图