暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

redis key命令

原创 只是甲 2020-11-13
693

备注:测试版本 redis 4.0.9

Table of Contents

key命令概述

命令 概述
del key 该命令用于在 key 存在是删除 key
dump key 序列化给定 key ,并返回被序列化的值
exists key 检查给定 key 是否存在
expire key seconds 为给定 key 设置过期时间
EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
PEXPIRE key milliseconds 设置 key 的过期时间亿以毫秒计
PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
KEYS pattern 查找所有符合给定模式( pattern)的 key
MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中
PERSIST key 移除 key 的过期时间,key 将持久保持
PTTL key 以毫秒为单位返回 key 的剩余的过期时间
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
RANDOMKEY 从当前数据库中随机返回一个 key
RENAME key newkey 修改 key 的名称
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey
TYPE key 返回 key 所储存的值的类型

1.1 del key

Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。

测试记录:

127.0.0.1:6379> set my_db redis
OK
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
"redis"
127.0.0.1:6379> del my_db
(integer) 1
127.0.0.1:6379> get my_db
(nil)
-- 已经删除过一次,重复删除被忽略
127.0.0.1:6379> del my_db
(integer) 0
复制

1.2 dump key

Redis DUMP 命令用于序列化给定 key ,并返回被序列化的值。

测试记录:

127.0.0.1:6379> set my_db oracle mysql redis mongodb hive
(error) ERR syntax error
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> dump my_db
"\x00\x1foracle mysql redis mongodb hive\b\x00\xfb\x7f\x17y\t~\x9f\xba"
复制

1.3 EXISTS key

Redis EXISTS 命令用于检查给定 key 是否存在

测试记录:

127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> exists my_db
(integer) 1
127.0.0.1:6379> exists my_db_123
(integer) 0
127.0.0.1:6379> 
复制

1.4 Expire/Expireat/PEXPIREAT/PEXPIREAT/PERSIST/PTTL/TTL

Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
Redis PEXPIREAT 命令用于设置 key 的过期时间,已毫秒技。key 过期后将不再可用。

Redis PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。

Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。
Redis TTL 命令以秒为单位返回 key 的剩余过期时间。

测试记录:

127.0.0.1:6379> set my_db "oracle mysql redis mongodb hive"
OK
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> expire my_db 60
(integer) 1
127.0.0.1:6379> TTL my_db
(integer) 55
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> TTL my_db
(integer) 17
127.0.0.1:6379> get my_db
"oracle mysql redis mongodb hive"
127.0.0.1:6379> 
127.0.0.1:6379> TTL my_db
(integer) -2
127.0.0.1:6379> get my_db
(nil)
127.0.0.1:6379> 

复制

1.4 Keys pattern命令

Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。。

测试记录:

127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> set my_db3 SQLServer
OK
127.0.0.1:6379> set my_db4 PostgreSQL
OK
127.0.0.1:6379> keys my_db*
1) "my_db3"
2) "my_db2"
3) "my_db1"
4) "my_db4"
127.0.0.1:6379> 
复制

1.5 Move命令

Redis MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。

测试记录:

-- redis默认使用数据库 0,为了清晰起见,这里再显式指定一次。
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set my_db "Oracle MySQL Redis MongoDB"
OK
127.0.0.1:6379> get my_db
"Oracle MySQL Redis MongoDB"
127.0.0.1:6379> 
-- 将 my_db 移动到数据库1
127.0.0.1:6379> move my_db 1
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> get my_db
(nil)
-- 使用数据库1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get my_db
"Oracle MySQL Redis MongoDB"
127.0.0.1:6379[1]> 
复制

1.6 RANDOMKEY 命令

Redis RANDOMKEY 命令从当前数据库中随机返回一个 key

测试记录:

127.0.0.1:6379> 
127.0.0.1:6379> mset my_db1 Oracle my_db2 MySQL my_db3 redis
OK
127.0.0.1:6379> randomkey
"my_db1"
127.0.0.1:6379> randomkey
"my_db3"
127.0.0.1:6379> randomkey
"my_db2"
127.0.0.1:6379> randomkey
"my_db1"
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
3) "my_db1"
127.0.0.1:6379> 
127.0.0.1:6379> flushDB
OK
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> 
复制

1.7 RENAME/RENAMENX

RENAME key newkey 修改 key 的名称
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey

测试记录:

127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> rename my_db1 my_db3
OK
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> rename my_db2 my_db3
OK
127.0.0.1:6379> keys *
1) "my_db3"
127.0.0.1:6379> 
127.0.0.1:6379> flushDB
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> set my_db1 Oracle
OK
127.0.0.1:6379> set my_db2 MySQL
OK
127.0.0.1:6379> renamenx my_db1 my_db3
(integer) 1
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> renamenx my_db2 my_db3
(integer) 0
127.0.0.1:6379> keys *
1) "my_db3"
2) "my_db2"
127.0.0.1:6379> 
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论