在 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
设置)。
