Redis命令如何快速使用?
- 电脑教程
- 2025-06-21
- 6
Redis 是一个高性能的键值存储数据库,支持多种数据结构(如字符串、哈希、列表等),其命令通过 redis-cli 命令行工具或编程语言客户端执行,以下是核心命令分类及使用详解,所有语法均遵循 Redis 官方规范:
通用命令
-
KEYS pattern
查找匹配模式的键(生产环境慎用,阻塞性能)。
KEYS user:* # 返回所有以"user:"开头的键 -
DEL key [key ...]
删除指定键。
DEL user:1001 profile:1001 -
EXPIRE key seconds
设置键的过期时间(秒)。
EXPIRE session_token 3600 # 1小时后过期 -
TTL key
查看键的剩余生存时间(秒)。
TTL session_token # 返回 -2 表示键不存在,-1 表示永不过期
字符串(Strings)
适用于缓存、计数器等场景。
-
SET key value [EX seconds]
设置键值对,支持过期时间。
SET website:visits 0 EX 60 # 初始化为0,60秒后过期 -
GET key
获取键的值。
GET website:visits # 返回 "0" -
INCR key
将键的值增1(原子操作)。
INCR website:visits # 值变为1 -
MSET key value [key value ...]
批量设置键值。
MSET name "Alice" age 30 city "Paris"
哈希(Hashes)
存储对象属性,如用户信息。

-
HSET key field value
设置哈希中的字段值。
HSET user:1001 name "Bob" email "bob@example.com"
-
HGET key field
获取哈希字段的值。
HGET user:1001 name # 返回 "Bob" -
HGETALL key
获取哈希所有字段和值。
HGETALL user:1001 # 返回字段列表和值 -
HINCRBY key field increment
增加哈希字段的数值。
HINCRBY user:1001 score 5 # 分数增加5
列表(Lists)
实现队列、消息流等功能。
-
LPUSH key element [element ...]
从左侧插入元素(先进后出)。
LPUSH messages "task1" "task2" # 列表:["task2", "task1"]
-
RPUSH key element [element ...]
从右侧插入元素(先进先出)。
RPUSH queue "job1" "job2" # 列表:["job1", "job2"] -
LPOP key
移除并返回左侧第一个元素。
LPOP messages # 返回 "task2" -
LRANGE key start stop
获取列表片段(支持负数索引)。
LRANGE queue 0 -1 # 返回所有元素
集合(Sets)
存储唯一元素,用于去重或标签。
-
SADD key member [member ...]
添加元素到集合。
-
SMEMBERS key
返回集合所有成员。
SMEMBERS tags # 返回无序的元素列表
-
SINTER key [key ...]
求多个集合的交集。
SINTER tags1 tags2 # 返回共同拥有的标签
-
SISMEMBER key member
检查元素是否存在。
SISMEMBER tags "redis" # 存在返回1,否则0 -
ZADD key score member
添加带分数的成员。
ZADD leaderboard 100 "Alice" 85 "Bob" -
ZRANGE key start stop [WITHSCORES]
按分数升序返回成员(结合 WITHSCORES 显示分数)。
ZRANGE leaderboard 0 -1 WITHSCORES # 返回 ["Bob","85","Alice","100"] -
ZREVRANGE key start stop
按分数降序返回成员(如排行榜)。
ZREVRANGE leaderboard 0 0 # 返回第一名:"Alice" -
ZINCRBY key increment member
增加成员的分数。
ZINCRBY leaderboard 20 "Bob" # Bob分数变为105 -
事务(MULTI/EXEC)
批量执行命令(非原子性,中间可能失败)。
MULTI SET balance:1001 500 INCR user:count EXEC -
管道(Pipeline)
一次性发送多条命令(减少网络延迟)。
# 在编程客户端中(例如Python): pipeline = redis_client.pipeline() pipeline.set("key1", "value1") pipeline.get("key2") results = pipeline.execute() - *生产环境规避 `KEYS **: 使用SCAN` 命令迭代查询(非阻塞)。
- 键命名规范:
建议使用 object_type:id:field 格式(如 user:1001:profile)。
- 内存管理:
定期检查内存占用(INFO memory),对大数据集分片存储。
- 持久化策略:
根据需求选择 RDB(快照)或 AOF(日志追加)。
- 读写分离:读操作指向从节点(Replica),写操作指向主节点(Master)。
- 连接池:复用客户端连接(如 Java 的 JedisPool)。
- Lua 脚本:复杂操作使用 EVAL 保证原子性。
- 监控工具:通过 redis-cli --stat 或 INFO 命令监控状态。
有序集合(Sorted Sets)
带权重的集合,适用于排行榜。
事务与管道
注意事项
最佳实践
引用说明: 基于 Redis 官方文档(redis.io/commands)整理,所有命令语法和示例均经过 Redis 7.0 版本验证,建议开发者查阅官方文档获取最新细节,或使用 HELP 命令查看内置帮助(如 HELP SET)。