Redis常用指令
通用指令:
INFO SERVER
查看Redis版本信息
TYPE:
查属性
redis> TYPE key1
"string"
redis> TYPE key2
"list"
KEYS:
查键(模糊查询内存消耗较大)
redis> KEYS *name*
1) "firstname"
2) "lastname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "age"
2) "firstname"
3) "lastname"
DEL
删除对应存储
> SET key "hello Redis"
OK
> DEL key
1
时间复杂度:O(N)
SORT
排序指令
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern
...]] [ASC | DESC] [ALPHA] [STORE destination]
SORT key DESC降序
SORT key ALPHA按字典排
SORT key LIMIT offset count从offset偏移量开示的count个元素
SORT key BY pattern按外部键排
SORT key BY nosort跳过排序
SORT key BY weight_* GET object_*获取排序元素外部键
SORT key BY weight_* STORE resultkey存储结果
SORT key BY weight_*->fieldname GET object_*->fieldname 哈希字段排序
SUMP&RESTORE
DUMP
命令可以将Redis键的值序列化并返回序列化的二进制数据。这个命令常用于备份键值或在不同Redis实例之间传输数据。
RESTORE
命令将序列化的二进制数据恢复为一个键。0
表示键的TTL(以毫秒为单位),这里设置为0表示键没有过期时间。
> SET key "hello Redis"
OK
> DUMP key
\x00\x0bhello Redis\x09\x00\xd84\xa5\x9e\x98\xf6\xd3\xef
> DEL key
1
> RESTORE key \x00\x0bhello Redis\x09\x00\xd84\xa5\x9e\x98\xf6\xd3\xef
OK
时间复杂度:O(1)
EXISTS
EXISTS
检验值是否存在
> SET KEY "HELLO REDIS"
OK
> EXIST KEY
ERR unknown command `exist`, with args beginning with: `KEY`,
> EXISTS KEY
1
时间复杂度:O(N)
EXPIRE
EXPIRE key seconds [NX | XX | GT | LT]
seconds
: 过期时间(以秒为单位)。NX
: 只有在键不存在过期时间时才设置。XX
: 只有在键已经存在过期时间时才设置。GT
: 只有在新过期时间大于当前过期时间时才设置。LT
: 只有在新过期时间小于当前过期时间时才设置。
PERSIST可以用于接触倒计时 》》》PERSIST KEY
TTL用于返回时间值(动态) 》》》TTL KEY
127.0.0.1:6379> EXPIRE mykey 60 NX
(integer) 1
127.0.0.1:6379> EXPIRE mykey 120 NX
(integer) 0
EXPIREAT
EXPIREAT与EXPIRE具有相同的效果和语义,但它不指定表示TTL(生存时间)的秒数,而是采用绝对的Unix时间戳(自1970年1月1日以来的秒数)。过去的时间戳将立即删除密钥。
EXPIREAT KEY UNIX_TimeStamp [NX | XX | GT | LT]
EXPIRETIME
返回一个UNIX时间戳
Integer reply: -1
if the key exists but has no associated expiration time.
Integer reply: -2
if the key does not exist.
redis> EXPIRETIME mykey
(integer) 33177117420
MIGRATE
此命令实际上在源实例中执行 DUMP+DEL,在目标实例中执行 RESTORE。请参阅这些命令的页面,了解时间复杂度。此外,还会在两个实例之间执行 O(N) 数据传输。
MIGRATE 192.168.1.34 6379 “” 0 5000 KEYS key1 key2 key3
MIGRATE host port key|"" destination-db timeout [COPY] [REPLACE] [AUTH password] [AUTH2 username password] [KEYS key1 key2 ...]
host
: 目标Redis实例的IP地址或主机名。port
: 目标Redis实例的端口号。key|""
: 要迁移的单个键,或使用空字符串以使用KEYS
选项指定多个键。destination-db
: 目标Redis实例的数据库索引(从0开始)。timeout
: 迁移操作的超时时间,以毫秒为单位。COPY
: 可选参数,表示保留源实例中的键。REPLACE
: 可选参数,表示如果目标实例中存在同名键,则替换它。AUTH password
: 可选参数,表示目标实例的访问密码。AUTH2 username password
: 可选参数,表示目标实例的用户名和密码。KEYS key1 key2 ...
: 要迁移的多个键。
MOVE
将键从当前选定的数据库移动到指定的目标数据库。
MOVE key db
OBJECT系列
OBJECT ENCODING
命令用于返回 Redis 存储的键的内部编码。
OBJECT FREQ
此命令返回存储在中的Redis对象的对数访问频率计数器。
OBJECT IDELTIME
此命令返回自上次访问存储在中的值以来的时间(秒)。
OBJECT RFECOUNT
此命令返回存储在的引用计数。
示例及应用场景>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1. OBJECT ENCODING
SET mystring "Hello, Redis!"
OK
127.0.0.1:6379> OBJECT ENCODING mystring
"embstr"
应用场景
OBJECT ENCODING
命令用于检查 Redis 键的内部编码类型。了解键的编码类型有助于优化内存使用和性能。例如,在某些情况下,可能需要优化键的大小或选择不同的编码方式来提高操作效率。
2. OBJECT FREQ
SET mystring "Hello, Redis!"OK
127.0.0.1:6379> OBJECT FREQ mystring
(integer) 1
(注意:OBJECT FREQ
仅在启用了 Redis 的内存频率跟踪功能时可用)
应用场景
OBJECT FREQ
命令返回 Redis 对象的访问频率计数器。这对于缓存管理特别有用,可以帮助确定哪些键被频繁访问,以便进行缓存命中率优化,或决定哪些键需要被淘汰。
3. OBJECT IDLETIME
127.0.0.1:6379> SET mystring "Hello, Redis!"
OK
127.0.0.1:6379> OBJECT IDLETIME mystring
(integer) 0
几秒后
127.0.0.1:6379> OBJECT IDLETIME mystring
(integer) 10
应用场景
OBJECT IDLETIME
命令返回自上次访问键以来的时间(秒)。这个命令对于确定哪些键长时间未被访问非常有用,有助于实施过期策略或数据清理策略,以释放内存资源。
4. OBJECT REFCOUNT
127.0.0.1:6379> SET mystring "Hello, Redis!"
OK
127.0.0.1:6379> OBJECT REFCOUNT mystring
(integer) 1
应用场景
OBJECT REFCOUNT
命令返回 Redis 对象的引用计数。这在调试和分析数据结构时非常有用,可以帮助了解某个键被引用的次数,从而避免意外的内存占用问题,尤其是在复杂的脚本或多重引用的场景中。
WAIT
此命令将阻止当前客户端,直到所有先前的写入命令都成功传输并至少得到您在numreplicas参数中指定的副本数量的确认。如果达到了为超时参数指定的值(以毫秒为单位),即使尚未达到指定的副本数量,该命令也会返回。