Redis的keys命令用于管理键。使用Redis的keys命令语法如下所示:
语法
redis 127.0.0.1:6379> COMMAND KEY_NAME Redis的键命令
如下表显示键的一些基本命令:
| S.N. | 命令 & 描述 |
|---|---|
| 1 | DEL key 此命令删除键,如果存在 |
| 2 | DUMP key 该命令返回存储在指定键的值的序列化版本。 |
| 3 | EXISTS key 此命令检查该键是否存在。 |
| 4 | EXPIRE key seconds 指定键的过期时间 |
| 5 | EXPIREAT key timestamp 指定的键过期时间。在这里,时间是在Unix时间戳格式 |
| 6 | PEXPIRE key milliseconds 设置键以毫秒为单位到期 |
| 7 | PEXPIREAT key milliseconds-timestamp 设置键在Unix时间戳指定为毫秒到期 |
| 8 | KEYS pattern 查找与指定模式匹配的所有键 |
| 9 | MOVE key db 移动键到另一个数据库 |
| 10 | PERSIST key 移除过期的键 |
| 11 | PTTL key 以毫秒为单位获取剩余时间的到期键。 |
| 12 | TTL key 获取键到期的剩余时间。 |
| 13 | RANDOMKEY 从Redis返回随机键 |
| 14 | RENAME key newkey 更改键的名称 |
| 15 | RENAMENX key newkey 重命名键,如果新的键不存在 |
| 16 | TYPE key 返回存储在键的数据类型的值。 |
DEL key
Redis的DEL命令用于删除redis中现有键。
返回值
被删除的键的数目。
语法
Redis的DEL命令的基本语法如下所示:
redis 127.0.0.1:6379> DEL KEY_NAME
例子
首先,在Redis的一个键,并设置一定的值。
redis 127.0.0.1:6379> SET key value OK现在删除以前生成键
redis 127.0.0.1:6379> DEL key (integer) 1
Redis的DUMP命令用于获取存储在redis的指定键数据的序列化版本。
返回值
序列化的值(字符串)
语法
Redis的DUMP命令的基本语法如下所示:
redis 127.0.0.1:6379> DUMP KEY_NAME
例子
首先,在Redis创建一个键,并设置一定的值。
redis 127.0.0.1:6379> SET key redis OK现在创建之前创建的键转储
redis 127.0.0.1:6379> DUMP key "\x00\x05redis\x06\x00S\xbd\xc1q\x17z\x81\xb2"
EXISTS key
Redis EXISTS命令被用来检查键是否存在于redis。
返回值
整数值
1, 如果键存在。
0, 如果键不存在。
语法
Redis exists命令的基本语法,如下所示:
redis 127.0.0.1:6379> EXISTS KEY_NAME
例子
redis 127.0.0.1:6379> EXISTS new-key (integer) 0现在,创建名为new-key新建一个键并检查是否存在。
redis 127.0.0.1:6379> EXISTS new-key (integer) 1
EXPIRE key
Redis Expire命令用于设定键有效期。到期时间后键不会在Redis中使用。
返回值
整数值1或0
1, 如果设置的键超时。
0, 如果键不存在,或者未设置超时。
语法
Redis expire命令的基本语法如下所示:
redis 127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS
首先,在Redis创建一个键,并设置一定的值。
redis 127.0.0.1:6379> SET key redis OK
现在设置以前创建的键超时
redis 127.0.0.1:6379> EXPIRE key 60 (integer) 1
在上面的例子中键yiibai被设定一分钟(或者60秒)的时间。 1分钟后,键会自动失效。
EXPIREAT key timestamp
Redis Expireat命令是用来以Unix时间戳格式设置键的到期时间。到期时间键后不会在Redis中使用。
返回值
整数值1或0
1, 如果设置的键超时。
0, 如果键不存在,或者未设置超时。
语法
Redis Expireat命令的基本语法如下所示:
redis 127.0.0.1:6379> Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP
例子首先,在Redis创建一个键,并设置一定的值。
redis 127.0.0.1:6379> SET key redis OK现在设置以前创建的键超时
redis 127.0.0.1:6379> EXPIREAT key 1293840000 (integer) 1 EXISTS yiibai (integer) 0
PEXPIRE key milliseconds
这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像EXPIRE命令那样,以秒为单位。
返回值
integer-reply, 只有以下两种值:
- 设置成功,返回 1
- key 不存在或设置失败,返回 0
例子
redis> SET mykey "Hello"
OK
redis> PEXPIRE mykey 1500
(integer) 1
redis> TTL mykey
(integer) 1
redis> PTTL mykey
(integer) 1499
redis>
PEXPIREAT key millisecnds-timestamp
PEXPIREAT 这个命令和EXPIREAT命令类似,但它以毫秒为单位设置 key 的过期unix 时间戳,而不是像EXPIREAT那样,以秒为单位。
返回值
integer-reply, 只有以下两种值:
- 如果生存时间设置成功,返回 1 。
- 当 key 不存在或没办法设置生存时间时,返回 0 。 (查看: EXPIRE命令获取更多信息).
例子
redis> SET mykey "Hello"
OK
redis> PEXPIREAT mykey 1555555555005
(integer) 1
redis> TTL mykey
(integer) 192569170
redis> PTTL mykey
(integer) 192569169649
redis>
KEYS pattern
查找所有符合给定模式pattern(正则表达式)的 key 。
时间复杂度为O(N),N为数据库里面key的数量。
例如,Redis在一个有1亿个key的数据库里面执行一次查询需要的时间是40毫秒 。
警告: KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 KEYS, 你最好还是用 Redis 的集合结构 SETS 来代替。
支持的正则表达模式:
h?llo匹配hello,hallo和hxlloh*llo匹配hllo和heeeelloh[ae]llo匹配hello和hallo,但是不匹配hilloh[^e]llo匹配hallo,hbllo, … 但是不匹配helloh[a-b]llo匹配hallo和hbllo
如果你想取消字符的特殊匹配(正则表达式,可以在它的前面加\。
返回值
array-reply: 所有符合条件的key
例子
redis> MSET one 1 two 2 three 3 four 4
OK
redis> KEYS *o*
1) "four"
2) "one"
3) "two"
redis> KEYS t??
1) "two"
redis> KEYS *
1) "four"
2) "three"
3) "one"
4) "two"
redis>
MOVE key db
将当前数据库的 key 移动到给定的数据库 db 当中。
如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。
因此,也可以利用这一特性,将 MOVE 当作锁(locking)原语(primitive)。
返回值
- 移动成功返回 1
- 失败则返回 0
PERSIST key
移除给定key的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。
返回值
integer-reply, 只有以下两种值:
- 当生存时间移除成功时,返回 1 .
- 如果 key 不存在或 key 没有设置生存时间,返回 0 .
例子
redis> SET mykey "Hello"
OK
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> PERSIST mykey
(integer) 1
redis> TTL mykey
(integer) -1
redis>
PTTL key
这个命令类似于TTL命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像TTL命令那样,以秒为单位。
在Redis 2.6和之前版本,如果key不存在或者key存在但是已经过期将返回-1。
从 Redis 2.8开始,错误返回值发送了如下变化:
- 如果key不存在返回
-2 - 如果key存在但是已经过期返回
-1
返回值
integer-reply: TTL以毫秒为单位,或者返回一个错误值 (参考上面的描述).
例子
redis> SET mykey "Hello"
OK
redis> EXPIRE mykey 1
(integer) 1
redis> PTTL mykey
(integer) 999
redis>
TLL key
Redis TTL命令用于获取键到期的剩余时间(秒)。
返回值
以秒为单位的整数值TTL或负值
-1, 如果key没有到期超时。
-2, 如果键不存在
例子
127.0.0.1:6397> set key value OK 127.0.0.1:6397> EXPIRE key 60 (integer) 1 127.0.0.1:6397> ttl key (integer) 57 127.0.0.1:6397> ttl key (integer) 56 127.0.0.1:6397> pttl key (integer) 53352 127.0.0.1:6397> ttl 1 (integer) -2 127.0.0.1:6397> PERSIST key (integer) 1 127.0.0.1:6397> ttl key (integer) -1
RANDOMKEY
RENAME key newkey
将key重命名为newkey,如果key与newkey相同,将返回一个错误。如果newkey已经存在,则值将被覆盖。
返回值
例子
redis> SET mykey "Hello"
OK
redis> RENAME mykey myotherkey
OK
redis> GET myotherkey
"Hello"
redis>
RENAMENX key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey 。
当 key 不存在时,返回一个错误。
返回值
- 修改成功时,返回 1 。
- 如果 newkey 已经存在,返回 0 。
例子
redis> SET mykey "Hello"
OK
redis> SET myotherkey "World"
OK
redis> RENAMENX mykey myotherkey
(integer) 0
redis> GET myotherkey
"World"
redis>
TYPE key
返回key所存储的value的数据结构类型,它可以返回string, list, set, zset 和hash等不同的类型。
返回值
simple-string-reply: 返回当前key的数据类型,如果key不存在时返回none。
例子
redis> SET key1 "value"
OK
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
string
redis> TYPE key2
list
redis> TYPE key3
set
redis>
1574

被折叠的 条评论
为什么被折叠?



