Redis常用命令整理。
通用键操作
DEL key – 删除键。示例:DEL user:1
EXISTS key – 判断键是不是存在。示例:EXISTS user:1
EXPIRE key 秒数 – 设置过期时间(秒)。示例:EXPIRE code:123 600
TTL key – 查看剩余生存时间(秒)。示例:TTL code:123
PERSIST key – 移除过期时间,变为永久。示例:PERSIST code:123
TYPE key – 返回键的数据类型。示例:TYPE user:1
RENAME key newkey – 重命名键。示例:RENAME old:key new:key
KEYS pattern – 查找一致的键。⚠️生产环境慎用,会阻塞。示例:KEYS user:*
SCAN cursor [MATCH pattern] [COUNT count] – 渐进式遍历,替代 KEYS。示例:SCAN 0 MATCH user:* COUNT 100
字符串 (String)
SET key value [EX seconds] [PX ms] [NX|XX] – 设置值,可带过期和条件。示例:SET username "alice" EX 60
GET key – 获取值。示例:GET username
MSET key1 val1 key2 val2 – 批量设置。示例:MSET a 1 b 2
MGET key1 key2 – 批量获取。示例:MGET a b
INCR key – 原子自增1。示例:INCR counter
DECR key – 原子自减1。示例:DECR counter
INCRBY key increment – 自增指定整数。示例:INCRBY total 10
APPEND key value – 末尾追加字符串。示例:APPEND log "error msg"
STRLEN key – 字符串长度。示例:STRLEN username
哈希 (Hash)
HSET key field value [field value ...] – 设置一个或多个字段。示例:HSET user:1 name "Tom" age 25
HGET key field – 获取字段值。示例:HGET user:1 name
HMGET key field1 field2 – 批量获取字段值。示例:HMGET user:1 name age
HGETALL key – 获取所有字段和值。示例:HGETALL user:1
HDEL key field – 删除字段。示例:HDEL user:1 age
HEXISTS key field – 判断字段是不是存在。示例:HEXISTS user:1 email
HKEYS key – 返回所有字段名。示例:HKEYS user:1
HVALS key – 返回所有字段值。示例:HVALS user:1
HLEN key – 字段数量。示例:HLEN user:1
HINCRBY key field increment – 字段整数自增。示例:HINCRBY user:1 age 1
列表 (List)
LPUSH key element – 在左侧头部插入。示例:LPUSH tasks "task1"
RPUSH key element – 在右侧尾部插入。示例:RPUSH tasks "task2"
LPOP key – 左侧头部弹出。示例:LPOP tasks
RPOP key – 右侧尾部弹出。示例:RPOP tasks
LRANGE key start stop – 获取指定范围元素(-1表示末尾)。示例:LRANGE tasks 0 -1
LLEN key – 列表长度。示例:LLEN tasks
LINDEX key index – 按索引获取元素。示例:LINDEX tasks 0
LREM key count value – 删除指定值的元素。示例:LREM tasks 2 "done"
BLPOP key timeout – 阻塞左弹出(秒,0表示无限)。示例:BLPOP queue 5
BRPOP key timeout – 阻塞右弹出。示例:BRPOP queue 0
集合 (Set)
SADD key member – 添加成员。示例:SADD tags "redis" "db"
SREM key member – 移除成员。示例:SREM tags "db"
SMEMBERS key – 返回所有成员。示例:SMEMBERS tags
SISMEMBER key member – 判断是不是为成员。示例:SISMEMBER tags "redis"
SCARD key – 集合元素数量。示例:SCARD tags
SPOP key [count] – 随机弹出元素。示例:SPOP tags 2
SRANDMEMBER key [count] – 随机返回元素(不删除)。示例:SRANDMEMBER tags 1
SUNION key1 key2 – 并集。示例:SUNION setA setB
SINTER key1 key2 – 交集。示例:SINTER setA setB
SDIFF key1 key2 – 差集。示例:SDIFF setA setB
有序集合 (Sorted Set)
ZADD key score member – 添加成员及分数。示例:ZADD rank 100 "alice"
ZREM key member – 移除成员。示例:ZREM rank "bob"
ZSCORE key member – 获取成员分数。示例:ZSCORE rank "alice"
ZRANK key member – 按分数升序排名(从0开始)。示例:ZRANK rank "alice"
ZREVRANK key member – 按分数降序排名。示例:ZREVRANK rank "alice"
ZRANGE key start stop [WITHSCORES] – 按索引升序返回成员。示例:ZRANGE rank 0 -1 WITHSCORES
ZREVRANGE key start stop – 按索引降序返回。示例:ZREVRANGE rank 0 2
ZRANGEBYSCORE key min max – 按分数范围返回。示例:ZRANGEBYSCORE rank 80 100
ZCOUNT key min max – 分数区间成员数。示例:ZCOUNT rank 50 100
ZCARD key – 成员总数。示例:ZCARD rank
ZINCRBY key increment member – 增加成员分数。示例:ZINCRBY rank 10 "alice"
ZPOPMIN key [count] – 弹出分数最低的成员。示例:ZPOPMIN queue 3
发布/订阅
PUBLISH channel message – 发布消息。示例:PUBLISH news "hello"
SUBSCRIBE channel – 订阅频道。示例:SUBSCRIBE news
PSUBSCRIBE pattern – 按方式订阅。示例:PSUBSCRIBE news.*
事务
MULTI – 开启事务
EXEC – 执行事务
DISCARD – 取消事务
WATCH key – 乐观锁,监控键是不是被修改
位图 (Bitmap)
SETBIT key offset value – 设置位的值(0或1)
GETBIT key offset – 获取位的值
BITCOUNT key [start end] – 统计值为1的位数
BITOP op destkey key1 key2 – 位运算(AND, OR, XOR, NOT)
HyperLogLog
PFADD key element – 添加元素到基数统计
PFCOUNT key – 估算不重复元素个数
PFMERGE destkey sourcekey1 sourcekey2 – 合并多个HyperLogLog
地理空间 (GEO)
GEOADD key longitude latitude member – 添加地理位置
GEODIST key member1 member2 [m|km|ft|mi] – 计算两点距离
GEORADIUS key longitude latitude radius m|km ... – 查询指定半径内的成员
服务器和运维
PING – 测试连接
SELECT dbIndex – 切换数据库
DBSIZE – 当前库的键数量
INFO – 服务器信息
CONFIG GET parameter / CONFIG SET parameter value – 运行时配置
FLUSHDB – 清空当前库(危险)
FLUSHALL – 清空所有库(危险)
SLOWLOG GET [count] – 查看慢查询日志
MONITOR – 实时监控收到的命令(调试用)
这些命令能满足大多数开发运维,使用时注意控制 KEYS 等耗时命令,合理设置过期时间避免内存增长。