redis 键(key)

Redis键命令用于管理redis的键。

语法:COMMAND KEY_NAME

Redis键的基本命令

1、设置键值

SET keyname value

2、删除键

    DEL key 

    该命令用于key存在时删除key。不存在时key会被忽略。返回被删除key的数量。

redis> DEL w3ckey
(integer) 1

3、序列化key

    DUMP key

    序列化给定的key,并返回被序列化的值。如果key不存在,那么返回nil,否则,返回序列化之后的值。

redis> DUMP greeting
"\x00\x15hello, dumping world!\x06\x00E\xa0Z\x82\xd8r\xc1\xde"

redis> DUMP not-exists-key
(nil)

4、检查key是否存在

    EXISTS key

    若key存在则返回1,否则返回0。

redis > EXISTS runoob-new-key
(integer) 1

5、为给定key设置过期时间

    EXPIRE key time_in_seconds

设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的过期时间)返回 0 。

redis 127.0.0.1:6379> EXPIRE runooobkey 60
(integer) 1

   

    EXPIREAT KEY_NAME TIME_IN_UNIX_TIMESTAMP

    Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

redis 127.0.0.1:6379> EXPIREAT runoobkey 1293840000
(integer) 1
EXISTS runoobkey
(integer) 0

   

     PEXIPIRE key milliseconds

    PEXPIRE 命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位。

redis> SET mykey "Hello"
"OK"
redis> PEXPIRE mykey 1500
(integer) 1
redis> TTL mykey
(integer) 1
redis> PTTL mykey
(integer) 1498
redis>

PEXPIREAT KEY_NAME TIME_IN_MILLISECONDS_IN_UNIX_TIMESTAMP

设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

redis 127.0.0.1:6379> PEXPIREAT runoobkey 1555555555005
(integer) 1

6、KEYS pattern

查找所有符合给定模式pattern的key,返回符合给定模式的 key 列表 (Array)。

redis 127.0.0.1:6379> KEYS runoob*
1) "runoob3"
2) "runoob1"
3) "runoob2"

7、MOVE KEY_NAME DES_DATABASE

MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。移动成功返回1,失败返回0。

8、PERSIST key_name

 PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。当过期时间移除成功时,返回 1 。 如果 key 不存在或 key 没有设置过期时间,返回 0 。

redis> SET mykey "Hello"
OK

redis> EXPIRE mykey 10  # 为 key 设置生存时间
(integer) 1

redis> TTL mykey
(integer) 10

redis> PERSIST mykey    # 移除 key 的生存时间
(integer) 1

redis> TTL mykey
(integer) -1

9、PTTL key_name

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

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

注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

10、TTL key_name

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

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

注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

11、RANDOMKEY

RANDOMKEY 命令从当前数据库中随机返回一个 key 。当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。

12、RENAME OLD_KEY_NAME NEW_KEY_NAME

Rename 命令用于修改 key 的名称 。

改名成功时提示 OK ,失败时候返回一个错误。

当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖其旧值。

redis> SET pc "lenovo"
OK

redis> SET personal_computer "dell"
OK

redis> RENAME pc personal_computer
OK

redis> GET pc
(nil)

redis:1> GET personal_computer      # 原来的值 dell 被覆盖了
"lenovo"

13、RENAMENX OLD_KEY_NAME NEW_KEY_NAME

Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 。

# newkey存在时,失败

redis> SET animal "bear"
OK

redis> SET favorite_animal "butterfly"
OK

redis> RENAMENX animal favorite_animal
(integer) 0

redis> get animal
"bear"

redis> get favorite_animal
"butterfly"

14、TYPE KEY_NAME

Type 命令用于返回 key 所储存的值的类型。

返回 key 的数据类型,数据类型有:

  • none (key不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)

猜你喜欢

转载自my.oschina.net/u/3767248/blog/1807833