一、基础通用命令(所有数据类型通用)
# 查看所有 key(谨慎用,生产环境慎用 keys *)
keys *
# 查看 key 是否存在(存在返回1,不存在返回0)
exists key_name
# 查看 key 类型(string/list/hash/set/zset)
type key_name
# 设置过期时间(秒)
expire key_name 3600 # 1小时后过期
# 查看 key 剩余过期时间(秒,-1=永久,-2=不存在)
ttl key_name
# 删除 key
del key_name
# 清空当前数据库所有数据(危险!)
flushdb
# 清空所有数据库数据(危险!)
flushall
二、字符串类型(String)
最常用的缓存类型,存普通文本、JSON、数字。
# 设置值
set key value
setex key 3600 value # 同时设置过期时间(秒)
setnx key value # key不存在才设置(防重复)
# 获取值
get key
# 数字自增/自减(适合计数器)
incr key # 自增1
incrby key 10 # 自增10
decr key # 自减1
三、哈希类型(Hash)
适合存对象(比如用户信息、商品信息),一个 key 下多个字段。
# 设置单个字段
hset user:1 name "张三"
hset user:1 age 20
# 获取单个字段
hget user:1 name
# 批量设置/获取
hmset user:2 name "李四" age 25 gender "男"
hmget user:2 name age gender
# 获取所有字段和值
hgetall user:1
# 删除字段
hdel user:1 age
四、列表类型(List)
适合做队列、消息推送、消息列表,有序可重复。
# 左边添加(入队头)
lpush list_name value1 value2
# 右边添加(入队尾)
rpush list_name value3 value4
# 左边弹出(出队头)
lpop list_name
# 右边弹出(出队尾)
rpop list_name
# 获取列表元素(索引从0开始,-1表示最后一个)
lrange list_name 0 -1
五、集合类型(Set)
无序、不重复,适合做标签、去重、好友关系。
# 添加元素
sadd set_name value1 value2 value3
# 获取所有元素
smembers set_name
# 判断元素是否存在
sismember set_name value1
# 删除元素
srem set_name value1
六、有序集合(ZSet)
带权重的集合,适合做排行榜、延时队列,按分数排序。
# 添加元素(分数+值)
zadd rank 100 "userA" 90 "userB" 80 "userC"
# 按分数升序获取(0-10表示排名,-1表示最后一个)
zrange rank 0 -1 WITHSCORES
# 按分数降序获取
zrevrange rank 0 -1 WITHSCORES
# 获取元素分数
zscore rank "userA"
七、数据库操作命令
# 切换数据库(默认16个,0-15,你截图里的 :0> 就是第0个库)
select 1 # 切换到第1个库
# 查看当前数据库 key 数量
dbsize
💡 常用场景示例
- 缓存用户信息 :用
Hash,hset user:1001 name "张三" phone "138xxxx" - 商品浏览记录 :用
List,lpush history:1001 10086 - 排行榜 :用
ZSet,zadd hot:goods 1000 "10086" - 短信验证码 :用
String,setex code:138xxxx 300 "123456"(5 分钟过期)