redis 从0到1完整学习 (二):redis 常用命令

发布时间:2023年12月20日


1. 引言

前情提要:
《redis 从0到1完整学习 (一):安装&初识 redis》

本文主要介绍一下通用命令,更多 Redis 命令请查询 Redis 官网,Redis Commands

2. 通用命令

介绍一些常用通用的命令。

SET

用法:

SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |
  EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]

设置一个键值对。其中 Options 解释:

EX seconds -- 设置过期时间,单位为秒
PX milliseconds -- 设置过期时间,单位为毫秒
EXAT timestamp-seconds -- 设置过期的具体 Unix 时间,单位为秒
PXAT timestamp-milliseconds -- 设置过期的具体 Unix 时间,单位为毫秒
NX -- 仅当 key 不存在才设置
XX -- 仅当 key 存在才设置
KEEPTTL -- 设置新值时保留 key 的现有过期时间。这意味着,如果 key 已经设置了过期时间,使用 SET 命令更新键的值时,原有的过期时间会被保留。
GET -- 返回存储在 key 处的旧字符串,如果key不存在,则返回 nil。如果存储在 key 上的值不是字符串,则返回错误并中止 SET。

例子:

redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> SET anotherkey "will expire in a minute" EX 60
"OK"
redis>

GET

用法:

GET key

返回 key 对应的值。
例子:

redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> 

MSET

用法:

MSET key value [key value ...]

用于批量设置多个键值对。
例子:

redis> MSET key1 "Hello" key2 "World"
"OK"
redis> GET key1
"Hello"
redis> GET key2
"World"
redis>

KEYS

用法:

KEYS pattern

根据 pattern 的匹配规则返回数据库中的所有 key。其中 pattern 示例如下:

h?llo matches hello, hallo and hxllo
h*llo matches hllo and heeeello
h[ae]llo matches hello and hallo, but not hillo
h[^e]llo matches hallo, hbllo, ... but not hello
h[a-b]llo matches hallo and hbllo

例子:

redis> MSET firstname Jack lastname Stuntman age 35
"OK"

# 查询包含 name 的 key
redis> KEYS *name*
1) "lastname"
2) "firstname"

# 查询以 a 字母开头,长度为3的 key
redis> KEYS a??
1) "age"

# 查询所有 key
redis> KEYS *
1) "lastname"
2) "age"
3) "firstname"
redis> 

DEL

用法:

DEL key [key ...]

用于删除 Redis 中现有 key,可以删除多个 key。返回值实际被删除 key 的数目。

例子:

redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"

# 连续删除多个 key。key3 不存在,实际删除2个 key
redis> DEL key1 key2 key3
(integer) 2
redis> 

EXISTS

用法:

EXISTS key [key ...]

用于判断 key 是否存在。指定的 key 存在时,返回值为1;当指定的 key 不存在时,返回值为0。如果指定了多个 key,返回值会累加,表示存在的 key 的个数。

例子:

redis> SET key1 "Hello"
"OK"
redis> EXISTS key1
(integer) 1
redis> EXISTS nosuchkey
(integer) 0
redis> SET key2 "World"
"OK"
redis> EXISTS key1 key2 nosuchkey
(integer) 2
redis> 

EXPIRE

用法:

EXPIRE key seconds [NX | XX | GT | LT]

设置一个 key 的过期时间,单位为秒,超过有效期 key 则会移除。其中 Options 解释:

NX -- 仅当 key 没有过期时间,才设置
XX -- 仅当 key 有过期时间,才设置
GT -- 仅当 key 的新的过期时间大于当前过期时间,才设置
LT -- 仅当 key 的新的过期时间小于当前过期时间,才设置

例子:

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> SET mykey "Hello World"
"OK"
redis> TTL mykey
(integer) -1
redis> EXPIRE mykey 10 XX
(integer) 0
redis> TTL mykey
(integer) -1
redis> EXPIRE mykey 10 NX
(integer) 1
redis> TTL mykey
(integer) 10
redis> 

TTL

用法:

TTL key

返回 key 的剩余时间。如果 key 存在但未设置过期时间,则返回-1;如果 key 不存在,则返回-2。

redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> 

APPEND

用法:

APPEND key value

将值附加到已存在的 key 中。如果 key 已经存在并且是一个字符串,则此命令会将值附加在字符串的末尾。若 key 不存在,它将被创建并设置为空字符串,所以在这种特殊情况下,APPEND 将类似于 set。

例子:

redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"
redis> 

COPY

用法:

COPY source destination [DB destination-db] [REPLACE]

将 key 复制到另一个数据库,key 是要复制的键名。如果指定了destination-db,则将 key 复制到指定的目标数据库。如果不指定TO destination-db,则将 key 复制到当前数据库。返回1 表示复制成功,返回0表示未复制成功。

SET dolly "sheep"
COPY dolly clone
GET clone

3. 参考

《redis 从0到1完整学习 (一):安装&初识 redis》
Redis Commands

文章来源:https://blog.csdn.net/qq_36803941/article/details/135079453
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。