在 macOS 系统中使用 Redis,需先通过 Homebrew 安装:brew install redis,安装后启动服务为 brew services start redis,停止则为 brew services stop redis,Redis 命令主要分为五大类:键值操作、字符串操作、哈希操作、列表操作、集合操作及有序集合操作,以下是详细命令解析及使用场景。

键值操作(Key)
键是 Redis 中最基本的数据单元,常用命令包括:
KEYS pattern:匹配符合模式的键,如KEYS user:*匹配所有以user:开头的键(生产环境慎用,可能阻塞服务器)。EXISTS key:检查键是否存在,返回 1(存在)或 0(不存在)。DEL key [key ...]:删除一个或多个键,如DEL user:1 user:2。TYPE key:返回键存储的数据类型,如string、hash、list等。TTL key:查看键的剩余生存时间(秒),返回 -1 表示永不过期,-2 表示键不存在。EXPIRE key seconds:设置键的过期时间,如EXPIRE user:1 3600(1小时后过期)。RENAME key newkey:重命名键,若新键已存在则覆盖。
字符串操作(String)
字符串是 Redis 最简单的数据类型,支持二进制安全,常用于缓存、计数器等场景:
SET key value [EX seconds]:设置键值,可附带过期时间,如SET session:123 "abc123" EX 3600。GET key:获取键值,如GET session:123。MSET key1 value1 key2 value2 ...:批量设置键值,如MSET name "Alice" age "25"。MGET key1 key2 ...:批量获取键值,如MGET name age。INCR key:将键值递增 1,若键不存在则初始化为 0 后递增(适用于计数器)。DECR key:将键值递减 1,逻辑同INCR。INCRBY key increment:按指定增量递增,如INCRBY score:1 10。
哈希操作(Hash)
哈希是键值对集合,适合存储对象结构(如用户信息):
HSET key field value:设置哈希字段值,如HSET user:1 name "Bob" age "30"。HGET key field:获取哈希字段值,如HGET user:1 name。HMSET key field1 value1 field2 value2 ...:批量设置哈希字段值。HMGET key field1 field2 ...:批量获取哈希字段值。HGETALL key:获取哈希所有字段和值,如HGETALL user:1。HKEYS key:获取哈希所有字段,如HKEYS user:1返回["name", "age"]。HVALS key:获取哈希所有值,如HVALS user:1返回["Bob", "30"]。HDEL key field [field ...]:删除哈希字段,如HDEL user:1 age。
列表操作(List)
列表是字符串集合,按插入顺序排序,支持双向操作,常用于消息队列:

LPUSH key value [value ...]:从左侧(头部)插入元素,如LPUSH messages "hello"。RPUSH key value [value ...]:从右侧(尾部)插入元素,如RPUSH messages "world"。LPOP key:从左侧弹出元素,如LPOP messages返回"hello"。RPOP key:从右侧弹出元素,如RPOP messages返回"world"。LRANGE key start stop:获取列表指定范围元素,0 -1表示全部元素,如LRANGE messages 0 -1。LLEN key:获取列表长度,如LLEN messages返回2。
集合操作(Set)
集合是无序且不重复的字符串集合,支持交集、并集、差集运算,常用于标签系统:
SADD key member [member ...]:添加成员,如SADD tags:1 "redis" "database"。SMEMBERS key:获取所有成员,如SMEMBERS tags:1返回["redis", "database"]。SREM key member [member ...]:删除成员,如SREM tags:1 "database"。SISMEMBER key member:判断成员是否存在,返回 1(存在)或 0(不存在)。SCARD key:获取集合成员数,如SCARD tags:1返回1。SINTER key1 key2 ...:求交集,如SINTER tags:1 tags:2返回两个集合的共有成员。SUNION key1 key2 ...:求并集,如SUNION tags:1 tags:2返回两个集合的所有成员(去重)。
有序集合操作(ZSet)
有序集合是带分数的成员集合,按分数排序,适用于排行榜:
ZADD key score member [score member ...]:添加成员及分数,如ZADD leaderboard 100 "Alice" 90 "Bob"。ZRANGE key start stop [WITHSCORES]:按分数从低到高获取成员,加WITHSCORES显示分数,如ZRANGE leaderboard 0 -1 WITHSCORES。ZREVRANGE key start stop [WITHSCORES]:按分数从高到低获取成员。ZSCORE key member:获取成员分数,如ZSCORE leaderboard "Alice"返回100。ZINCRBY key increment member:增加成员分数,如ZINCRBY leaderboard 10 "Bob"(Bob 分数变为 100)。ZCARD key:获取成员数,如ZCARD leaderboard返回2。
相关问答FAQs
Q1:Redis 在 macOS 上如何优雅关闭?
A1:推荐使用 brew services stop redis 命令,它会先优雅关闭 Redis 服务(保存数据并停止进程),避免数据丢失,若需手动关闭,可通过 redis-cli 执行 SHUTDOWN 命令,或强制终止进程(pkill redis,但可能导致数据未保存)。
Q2:macOS 上 Redis 连接失败如何排查?
A2:首先检查服务是否启动:brew services list | grep redis,若未启动则执行 brew services start redis;若已启动,检查端口是否占用(默认 6379):lsof -i :6379,或通过 redis-cli -h 127.0.0.1 -p 6379 ping 测试连接,若返回 PONG 则正常,否则检查防火墙或配置文件(/usr/local/etc/redis.conf 中的 bind 和 port 设置)。

