菜鸟科技网

redis client命令

Redis 的命令非常丰富,通常按照数据结构进行分类,下面我将按照 Key(键)、String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Sorted Set(有序集合)、Pub/Sub(发布订阅)、Transactions(事务)、Connection(连接)、Server(服务器) 这几个核心模块来详细介绍最常用和最重要的命令。

redis client命令-图1
(图片来源网络,侵删)

Key(键)操作命令

Key 是 Redis 中最基本的概念,它可以是任何字符串,用于标识存储在 Redis 中的值。

命令 语法 描述 示例
DEL DEL key [key ...] 删除一个或多个 key DEL mykey
EXISTS EXISTS key 检查 key 是否存在,存在返回 1,否则 0 EXISTS mykey
EXPIRE EXPIRE key seconds 设置 key 的过期时间(秒) EXPIRE mykey 60 (60秒后过期)
TTL TTL key 查看一个 key 的剩余生存时间(秒) TTL mykey
TYPE TYPE key 返回 key 所存储的值的类型 TYPE mykey
KEYS KEYS pattern 查找所有符合给定模式 pattern 的 key KEYS user:* (查找所有以 "user:" 开头的 key)
SCAN SCAN cursor [MATCH pattern] [COUNT count] 迭代数据库中的 key(KEYS 的非阻塞替代方案) SCAN 0 MATCH user:* COUNT 100
MOVE MOVE key db 将当前数据库的 key 移动到指定的数据库 MOVE mykey 1 (移动到数据库1)
RENAME RENAME key newkey 重命名 key RENAME mykey newname
RENAMENX RENAMENX key newkey 当 newkey 不存在时,重命名 key RENAMENX mykey newname

String(字符串)操作命令

String 是 Redis 最基本的数据结构,可以存储文本、JSON、序列化后的对象,甚至是二进制数据(如图片)。

命令 语法 描述 示例
SET SET key value [EX seconds] 设置 key 的值,并可选地设置过期时间 SET name "Alice"
GET GET key 获取 key 的值 GET name
MSET MSET key value [key value ...] 同时设置一个或多个 key-value 对 MSET name "Bob" age "25"
MGET MGET key [key ...] 同时获取一个或多个 key 的值 MGET name age
INCR INCR key 将 key 中储存的数字值加 1 INCR visits
DECR DECR key 将 key 中储存的数字值减 1 DECR visits
INCRBY INCRBY key increment 将 key 中储存的数字值加上指定的增量 INCRBY score 10
DECRBY DECRBY key decrement 将 key 中储存的数字值减去指定的减量 DECRBY score 5
APPEND APPEND key value 将指定的值追加到 key 原值的末尾 APPEND name " Smith"
SETEX SETEX key seconds value 设置 key 的值,并设置其过期时间(秒) SETEX temp_data 3600 "some_value"

Hash(哈希)操作命令

Hash 是一个键值对集合,类似于 Java 中的 HashMap 或 Python 中的字典,适合存储对象信息。

命令 语法 描述 示例
HSET HSET key field value 将哈希表 key 中的 field 设置为 value HSET user:1001 name "Charlie"
HGET HGET key field 获取存储在哈希表中指定字段的值 HGET user:1001 name
HGETALL HGETALL key 获取哈希表中所有的字段和值 HGETALL user:1001
HDEL HDEL key field [field ...] 删除哈希表中的一个或多个指定字段 HDEL user:1001 age
HEXISTS HEXISTS key field 检查哈希表中是否存在指定的字段 HEXISTS user:1001 name
HINCRBY HINCRBY key field increment 将哈希表中指定字段的整数值加上增量 HINCRBY user:1001 login_count 1
HKEYS HKEYS key 获取哈希表中所有的字段名 HKEYS user:1001
HVALS HVALS key 获取哈希表中所有的值 HVALS user:1001
HLEN HLEN key 获取哈希表中字段的数量 HLEN user:1001

List(列表)操作命令

List 是一个简单的字符串列表,按照插入顺序排序,可以把它看作是一个双向链表,支持在两端进行操作。

redis client命令-图2
(图片来源网络,侵删)
命令 语法 描述 示例
LPUSH LPUSH key value [value ...] 将一个或多个值插入到列表的头部 LPUSH tasks "task1"
RPUSH RPUSH key value [value ...] 将一个或多个值插入到列表的尾部 RPUSH tasks "task2"
LPOP LPOP key 移除并返回列表的头元素 LPOP tasks
RPOP RPOP key 移除并返回列表的尾元素 RPOP tasks
LRANGE LRANGE key start stop 获取列表中指定范围内的元素 LRANGE tasks 0 -1 (获取所有元素)
LLEN LLEN key 获取列表的长度 LLEN tasks
LINDEX LINDEX key index 通过索引获取列表中的元素 LINDEX tasks 0 (获取第一个元素)
LREM LREM key count value 移除列表中与 value 相等的元素 LREM tasks 2 "task1" (移除前两个 "task1")

Set(集合)操作命令

Set 是一个无序的、不重复的字符串集合,集合中的元素是唯一的,常用于存储标签、去重等场景。

命令 语法 描述 示例
SADD SADD key member [member ...] 向集合添加一个或多个成员 SADD tags "redis" "database"
SMEMBERS SMEMBERS key 返回集合中的所有成员 SMEMBERS tags
SREM SREM key member [member ...] 移除集合中一个或多个成员 SREM tags "database"
SCARD SCARD key 获取集合的成员数 SCARD tags
SISMEMBER SISMEMBER key member 判断 member 是否是集合的成员 SISMEMBER tags "redis"
SINTER SINTER key [key ...] 返回给定所有集合的交集 SINTER tags1 tags2
SUNION SUNION key [key ...] 返回给定所有集合的并集 SUNION tags1 tags2
SDIFF SDIFF key [key ...] 返回第一个集合与其他所有集合的差集 SDIFF tags1 tags2

Sorted Set(ZSet, 有序集合)操作命令

Sorted Set 是 Set 的升级版,它在每个元素上都关联了一个 double 类型的分数,Redis 通过分数来为集合中的成员进行从小到大的排序,常用于排行榜、带权重的队列等。

命令 语法 描述 示例
ZADD ZADD key score member [score member ...] 向有序集合添加一个或多个成员 ZADD leaderboard 100 "player1"
ZRANGE ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间的成员 ZRANGE leaderboard 0 -1 WITHSCORES
ZREVRANGE ZREVRANGE key start stop [WITHSCORES] ZRANGE 类似,但返回的是按分数从高到低的排序 ZREVRANGE leaderboard 0 -1 WITHSCORES
ZSCORE ZSCORE key member 获取指定成员的分数 ZSCORE leaderboard "player1"
ZINCRBY ZINCRBY key increment member 增加指定成员的分数 ZINCRBY leaderboard 10 "player1"
ZCARD ZCARD key 获取有序集合的成员数 ZCARD leaderboard
ZREMRANGEBYRANK ZREMRANGEBYRANK key start stop 移除有序集合中指定排名区间的所有成员 ZREMRANGEBYRANK leaderboard 0 2 (移除前三名)
ZCOUNT ZCOUNT key min max 计算在指定分数区间的成员数量 ZCOUNT leaderboard 90 110

Pub/Sub(发布订阅)操作命令

Pub/Sub 是一种消息通信模式,发送者(发布者)不是直接发送消息给特定的接收者(订阅者),而是把消息发送到频道,系统将消息转发给所有订阅该频道的订阅者。

命令 语法 描述 示例
PUBLISH PUBLISH channel message 将信息发送到指定的频道 PUBLISH news "hello world"
SUBSCRIBE SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道 SUBSCRIBE news
UNSUBSCRIBE UNSUBSCRIBE [channel] 退订给定的频道,或退订所有频道 UNSUBSCRIBE news
PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] 订阅符合给定模式的频道 PSUBSCRIBE news.*
PUNSUBSCRIBE PUNSUBSCRIBE [pattern] 退订符合给定模式的频道 PUNSUBSCRIBE news.*

Transactions(事务)操作命令

Redis 事务是一组命令的集合,事务中的所有命令都会被序列化,按顺序地执行,事务在执行期间,不会被其他客户端的命令打断。

redis client命令-图3
(图片来源网络,侵删)
命令 语法 描述 示例
MULTI MULTI 标记一个事务块的开始 MULTI
EXEC EXEC 执行事务块中的所有命令 EXEC
DISCARD DISCARD 取消事务,放弃执行事务块中的所有命令 DISCARD
WATCH WATCH key [key ...] 监视一个或多个 key,如果在事务执行前这些 key 被其他命令修改,则事务会失败 WATCH mykey
UNWATCH UNWATCH 取消所有 WATCH 命令对 key 的监视 UNWATCH

Connection(连接)操作命令

这些命令用于管理客户端与 Redis 服务器的连接。

命令 语法 描述 示例
AUTH AUTH password 验证密码 AUTH mypassword
PING PING [message] 查看服务是否运行,可选地返回 message PING
ECHO ECHO message 打印指定的字符串 ECHO "hello"
SELECT SELECT index 切换到指定的数据库 SELECT 1
QUIT QUIT 关闭连接 QUIT

Server(服务器)操作命令

这些命令用于管理 Redis 服务器本身。

命令 语法 描述 示例
INFO INFO [section] 返回关于 Redis 服务器的各种信息和统计 INFO server
CONFIG GET CONFIG GET parameter 获取 Redis 服务器的配置参数 CONFIG GET maxmemory
CONFIG SET CONFIG SET parameter value 运行时动态地设置 Redis 服务器的配置参数 CONFIG SET maxmemory 1gb
FLUSHDB FLUSHDB [ASYNC] 删除当前数据库的所有 key FLUSHDB
FLUSHALL FLUSHALL [ASYNC] 删除所有数据库的所有 key FLUSHALL
SAVE SAVE 同步保存数据到磁盘 SAVE
BGSAVE BGSAVE 在后台异步保存数据到磁盘 BGSAVE

如何使用这些命令?

最直接的方式是使用 redis-cli(Redis Command Line Interface)。

  1. 连接 Redis

    redis-cli

    Redis 运行在远程服务器或非默认端口:

    redis-cli -h your_host -p your_port -a your_password
  2. redis-cli 中执行命令: 连接成功后,会看到一个 0.0.1:6379> 提示符,直接输入命令即可。

    0.0.1:6379> SET mykey "hello"
    OK
    127.0.0.1:6379> GET mykey
    "hello"
    127.0.0.1:6379> LPUSH mylist "item1"
    (integer) 1
    127.0.0.1:6379> LPUSH mylist "item2"
    (integer) 2
    127.0.0.1:6379> LRANGE mylist 0 -1
    1) "item2"
    2) "item1"
  3. 退出 redis-cli

    0.0.1:6379> QUIT
数据结构 主要用途 核心命令
String 缓存、计数器、对象存储 SET, GET, INCR, MSET
Hash 存储对象(如用户信息、配置) HSET, HGET, HGETALL, HINCRBY
List 消息队列、栈、最新列表 LPUSH, RPUSH, LPOP, RPOP, LRANGE
Set 标签、共同好友、去重 SADD, SMEMBERS, SREM, SINTER
Sorted Set 排行榜、优先级队列 ZADD, ZRANGE, ZINCRBY, ZSCORE

掌握这些核心命令是使用 Redis 的基础,建议你亲自在 redis-cli 中多加练习,以加深理解和记忆。

分享:
扫描分享到社交APP
上一篇
下一篇