[关闭]
@mritd 2016-01-27T12:07:37.000000Z 字数 1511 阅读 2013

Redis KEY 常用命令

Redis


hexo_redis_logo

参考自 Redis官方文档(中文版)

KEYS

加入版本 1.0.0。
时间复杂度: O(N),N 为数据库中 key 的数量。

查找所有符合给定模式 patternkey。特殊符号用 \ 隔开。

  1. KEYS * # 匹配数据库中所有 key 。
  2. KEYS h?llo # 匹配 hello , hallo 和 hxllo 等。
  3. KEYS h*llo # 匹配 hllo 和 heeeeello 等。
  4. KEYS h[ae]llo # 匹配 hello 和 hallo ,但不匹配 hillo 。

Warning:KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 KEYS, 你最好还是用 Redis 的集合结构 SETS 来代替。

DEL

加入版本 1.0.0。
时间复杂度: O(n)N为要移除的key的数量。移除单个字符串类型的key,时间复杂度为O(1)。移除单个列表、集合、有序集合或哈希表类型的key,时间复杂度为O(M),M为以上数据结构内的元素数量。

如果删除的key不存在,则直接忽略。返回被删除的keys的数量,Key 不存在返回0

语法

  1. DEL KEY [KEY ...]

EXISTS

加入版本 1.0.0。
时间复杂度: O(1)。
返回key是否存在。如果key存在返回 1 ;如果key不存在 返回 0。

语法

  1. EXISTS KEY

MOVE

加入版本 1.0.0。
时间复杂度: O(1)。
将当前数据库的 key 移动到给定的数据库 db 当中。
如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。因此,也可以利用这一特性,将 MOVE 当作锁(locking)原语(primitive)。

语法

  1. MOVE KEY DBNAME

RENAME

加入版本 1.0.0。
时间复杂度: O(1)。
将key重命名为newkey,如果key与newkey相同,将返回一个错误。如果newkey已经存在,则值将被覆盖。

语法

  1. RENAME OLDKEYNAME NEWKEYNAME

RENAMENX

加入版本 1.0.0。
时间复杂度: O(1)。
当且仅当 newkey 不存在时,将 key 改名为 newkey 。当 key 不存在时,返回一个错误。

语法

  1. RENAMENX OLDKEYNAME NEWKEYNAME

EXPIRE

加入版本 1.0.0。
时间复杂度: O(1)。
设置key的过期时间。如果key已过期,将会被自动删除。设置了过期时间的key被称之为volatile。在key过期之前可以重新更新他的过期时间,也可以使用PERSIST命令删除key的过期时间。
在Redis< 2.1.3之前的版本,key的生存时间可以被更新

语法

  1. EXPIRE KEY SECONDS

PERSIST

加入版本 2.2.0。
时间复杂度: O(1)。
移除给定key的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。

语法

  1. PERSIST KEY

TTL

加入版本 1.0.0。
时间复杂度: O(1)。
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

返回值

当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。

语法

  1. TTL KEY

TYPE

加入版本 1.0.0。
时间复杂度: O(1)。
返回 key 所储存的值的类型。

返回值

语法

  1. TYPE KEY

RANDOMKEY

加入版本 1.0.0。
时间复杂度: O(1)。
从当前数据库返回一个随机的key。

语法

  1. RANDOMKEY
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注