Redis常见命令


1. String(字符串)

Redis 的 String 类型用来存储简单的字符串、数字、二进制数据等,每个 key 对应一个 value,最大可存储 512MB。

命令 作用
SET key value 设置 key 的值为 value
GET key 获取 key 的值
MSET key1 value1 key2 value2 ... 批量设置多个键值对
MGET key1 key2 ... 批量获取多个 key 的值
APPEND key value 追加字符串 value 到 key 原值末尾
STRLEN key 获取 key 存储字符串的长度
INCR key 将 key 对应的数字值加 1(适用于整型字符串)
DECR key 将 key 对应的数字值减 1
INCRBY key increment 将 key 的值增加指定的 increment
INCRBYFLOAT key increment 将 key 的值增加指定的浮点数 increment

示例

sh 复制代码
SET user:1001 "Alice"
GET user:1001               # 返回 "Alice"

MSET key1 "hello" key2 "world"
MGET key1 key2              # 返回 ["hello", "world"]

APPEND user:1001 " Smith"
GET user:1001               # 返回 "Alice Smith"

STRLEN user:1001            # 获取字符串长度,如返回 11

SET counter 10
INCR counter                # counter 变为 11
DECR counter                # counter 变为 10
INCRBY counter 5            # counter 变为 15
INCRBYFLOAT counter 2.5     # counter 变为 17.5

2. Hash(哈希)

Redis 的 Hash 类型是一种键值对集合,类似于一个小型的哈希表(字典),非常适合存储对象数据,如用户信息(id、name、age 等)。

命令 作用
HSET key field value 设置哈希表 key 中字段 field 的值,如果存在则覆盖
HGET key field 获取哈希表 key 中字段 field 的值
HMSET key field1 value1 field2 value2 ... 批量设置多个字段(已废弃,推荐多次调用 HSET)
HMGET key field1 field2 ... 批量获取多个字段的值
HDEL key field1 field2 ... 删除哈希表 key 中的一个或多个字段
HEXISTS key field 检查 key 中是否存在 field 字段,存在返回 1,否则返回 0
HKEYS key 获取哈希表 key 中的所有字段名(keys)
HVALS key 获取哈希表 key 中的所有值(values)
HGETALL key 获取哈希表 key 中的所有字段及其值
HLEN key 获取哈希表 key 中的字段数量
HINCRBY key field increment 将 key 的 field 值增加 increment(可为负数)
HINCRBYFLOAT key field increment 对 key 的 field 进行浮点数递增

示例

sh 复制代码
# 设置和获取哈希字段
HSET user:1001 name "Alice" age 25
HGET user:1001 name           # 返回 "Alice"

# 计数增量
HINCRBY user:1001 age 1       # 将 age 加 1,变为 26

# 获取整个哈希表
HGETALL user:1001             # 返回所有字段及值,如 {name: "Alice", age: 26}

# 删除字段
HDEL user:1001 age            # 删除 age 字段

# 判断字段是否存在
HEXISTS user:1001 name        # 存在返回 1

3. Set(集合)

Redis 的 Set 类型用于存储无序且不重复的元素集合,常用于去重或关系交集、并集等操作。

命令 作用
SADD key value 向集合 key 中添加一个或多个元素
SREM key value 从集合 key 中移除指定元素
SMEMBERS key 获取集合 key 中的所有成员
SISMEMBER key value 判断 value 是否是集合 key 的成员,存在返回 1
SCARD key 获取集合 key 中的成员数量

示例

sh 复制代码
SADD myset "apple" "banana" "cherry"
SISMEMBER myset "apple"     # 返回 1
SMEMBERS myset              # 返回 ["apple", "banana", "cherry"]
SREM myset "banana"
SCARD myset                 # 返回集合成员数量,如 2

4. ZSet(有序集合)

Redis 的 ZSet 类型存储有序的集合,每个元素关联一个分数,常用于排行榜、权重排序等场景。

命令 作用
ZADD key score value 添加元素 value 并赋予分数 score
ZREM key value 从有序集合中移除指定元素
ZRANGE key start stop [WITHSCORES] 获取指定排名区间内的元素,可选返回分数
ZRANK key value 获取 value 在有序集合中的排名(从 0 开始)
ZINCRBY key increment value 将元素 value 的分数增加 increment

示例

sh 复制代码
ZADD leaderboard 100 "Alice"
ZADD leaderboard 200 "Bob"
ZRANK leaderboard "Alice"    # 返回 0(表示第一名)
ZRANGE leaderboard 0 -1 WITHSCORES  # 返回所有成员及分数,如 [("Alice", 100), ("Bob", 200)]
ZINCRBY leaderboard 50 "Alice" # Alice 的分数变为 150
ZREM leaderboard "Bob"         # 移除 Bob

5. List(列表)

Redis 的 List 类型是按插入顺序排序的字符串列表,常用于实现消息队列、任务队列等。

命令 作用
LPUSH key value 从列表左侧(头部)插入元素
RPUSH key value 从列表右侧(尾部)插入元素
LPOP key 从列表左侧弹出(并返回)一个元素
RPOP key 从列表右侧弹出(并返回)一个元素
LRANGE key start stop 获取列表中指定区间的元素
LLEN key 获取列表的长度

示例

sh 复制代码
LPUSH mylist "apple" "banana"    # 列表顺序为 ["banana", "apple"]
RPUSH mylist "cherry"            # 列表顺序为 ["banana", "apple", "cherry"]
LRANGE mylist 0 -1               # 返回整个列表 ["banana", "apple", "cherry"]
LPOP mylist                      # 移除并返回 "banana"
LLEN mylist                      # 返回列表长度,如 2

6. Key 相关命令

管理 key 的存在、过期、重命名等操作,可以有效控制数据生命周期。

命令 作用
EXISTS key 检查 key 是否存在,存在返回 1,否则返回 0
DEL key 删除指定 key
EXPIRE key seconds 设置 key 的过期时间(单位:秒)
TTL key 获取 key 剩余生存时间(单位:秒)
KEYS pattern 获取匹配 pattern 的所有 key(慎用,生产环境不推荐)
RENAME key newkey 将 key 重命名为 newkey

示例

sh 复制代码
SET session "abc123"
EXISTS session           # 返回 1 表示 session 存在
EXPIRE session 60        # 设置 session 60 秒后过期
TTL session              # 返回 session 剩余生存时间
DEL session              # 删除 session

7. 客户端连接相关命令

用于管理客户端连接、认证、选择数据库以及断开连接。

命令 作用
AUTH password 认证连接所需的密码
SELECT db 选择数据库(0 ~ 15 默认数据库)
CLIENT LIST 列出当前所有客户端连接
CLIENT KILL ip:port 断开指定客户端连接
QUIT 关闭当前客户端连接

示例

sh 复制代码
AUTH mypassword           # 使用密码认证
SELECT 1                  # 选择数据库 1
CLIENT LIST               # 列出所有客户端连接
CLIENT KILL 127.0.0.1:6379 # 断开指定客户端连接
QUIT                      # 关闭连接

8. Redis 状态及监控命令

用于查看 Redis 服务器状态、信息、以及执行监控操作。

命令 作用
INFO 获取 Redis 服务器的详细信息(包括内存、连接、统计等)
PING 测试服务器连接是否正常,返回 PONG
DBSIZE 获取当前数据库中 key 的数量
FLUSHDB 清空当前数据库中的所有 key
FLUSHALL 清空所有数据库中的所有 key
MONITOR 实时监控 Redis 接收到的所有命令

示例

sh 复制代码
PING                         # 返回 PONG
INFO                         # 返回服务器详细信息
DBSIZE                       # 返回当前数据库 key 数量,如 10
FLUSHDB                      # 清空当前数据库
# 注意:FLUSHALL 会清空所有数据库,请谨慎使用

复制代码
                      |

相关推荐
-SGlow-2 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
明月5663 小时前
Oracle 误删数据恢复
数据库·oracle
♡喜欢做梦5 小时前
【MySQL】深入浅出事务:保证数据一致性的核心武器
数据库·mysql
遇见你的雩风5 小时前
MySQL的认识与基本操作
数据库·mysql
半新半旧5 小时前
python 整合使用 Redis
redis·python·bootstrap
dblens 数据库管理和开发工具5 小时前
MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
数据库·mysql·dblens·dblens mysql·数据库连接管理
weixin_419658315 小时前
MySQL的基础操作
数据库·mysql
不辉放弃6 小时前
ZooKeeper 是什么?
数据库·大数据开发
Goona_6 小时前
拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
数据库·python·sql·excel·pyqt
daixin88487 小时前
什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
java·开发语言·redis·缓存