# Redis 常用 Key 查询命令(Linux / Java开发排查手册)

5 阅读3分钟

适用于:

  • Linux 服务器排查 Redis
  • Java 后端开发调试缓存
  • 快速定位缓存是否命中

一、进入 Redis

1. 默认连接

redis-cli

2. 指定端口

redis-cli -p 6379

3. 带密码连接

redis-cli -a 密码

连接成功后会看到:

127.0.0.1:6379>

二、查看 Key

1 查询所有 Key(开发环境)

KEYS *

⚠ 注意
生产环境 不推荐使用 KEYS*,因为会阻塞 Redis。


2 按前缀查询 Key(最常用)

KEYS home:Key:data*

返回示例:

1) "home:Key:data:ALL:today"
2) "home:Key:data:ALL:month"
3) "home:Key:data:210100:today"

3 生产环境推荐方式(SCAN)

SCAN 0 MATCH home:Key:data*

特点:

  • 不阻塞 Redis
  • 渐进式扫描
  • 适合线上环境

三、查看 Key 类型

TYPE key

例如:

TYPE home:Key:data:ALL:today

返回类型:

string
hash
list
set
zset

四、查看 Key 的 Value

不同类型查询方式不同。

1 String 类型(最常见)

GET key

示例:

GET home:Key:data:ALL:today

2 Hash 类型

HGETALL key

示例:

HGETALL user:1001

3 List 类型

LRANGE key 0 -1

4 Set 类型

SMEMBERS key

5 ZSet 类型

ZRANGE key 0 -1 WITHSCORES

五、查看 Key 是否存在

EXISTS key

返回值:

1  key存在
0  key不存在

示例:

EXISTS home:Key:data:ALL:today

六、查看 Key 过期时间(非常常用)

TTL key

示例:

TTL home:Key:data:ALL:today

返回值含义:

返回值含义
>0剩余过期时间(秒)
-1没有设置过期时间
-2key 不存在

示例:

3600

表示:1小时后过期


七、查看毫秒级过期时间

PTTL key

示例:

PTTL home:Key:data:ALL:today

返回值为 毫秒


八、设置 Key 过期时间

EXPIRE key

示例:

EXPIRE home:Key:data:ALL:today 3600

表示:1小时过期


九、删除 Key

删除单个

DEL key

示例:

DEL home:Key:data:ALL:today

删除多个

DEL key1 key2 key3

十、查看 Redis 当前 Key 数量

DBSIZE

返回示例:

(integer) 152

表示当前数据库有 152个 key


十一、查看 Redis 运行信息

INFO

查看内存信息:

INFO memory

十二、清空 Redis(慎用)

清空当前数据库

FLUSHDB

清空所有数据库

FLUSHALL

⚠ 注意:
生产环境 不要随便执行


十三、批量查看 Key 过期时间(Linux 常用)

redis-cli KEYS "home:Key:data*" | xargs -I {} redis-cli TTL {}

输出示例:

home:Key:data:ALL:today -> 3600
home:Key:data:ALL:month -> -1
home:Key:data:210100:today -> 1800

说明:

  • 3600 → 1小时过期
  • -1 → 永不过期

十四、Java 开发排查 Redis 缓存推荐步骤

排查缓存问题通常只需要四步:

1 查询 key

KEYS home:Key:data*

2 查看 key 类型

TYPE key

3 查看 value

GET key

4 查看过期时间

TTL key

通过这四步可以快速判断:

  • 是否存在缓存
  • 数据是否正确
  • 是否设置过期时间
  • Redis 类型是否正确

十五、推荐 Redis Key 命名规范

建议统一格式:

业务:模块:数据:条件

示例:

home:key:data:210100:today
home:key:data:210100:month
home:key:data:210100:year

结构说明:

部分含义
home业务模块
key功能模块
data数据类型
210100区域
today时间维度

优点:

  • 结构清晰
  • 方便查询
  • 避免 key 混乱

十六、Redis 排查缓存问题常用命令总结

开发最常用命令:

KEYS home:Key:data*
TYPE key
GET key
TTL key
EXISTS key
DEL key

基本可以解决 90% Redis 缓存问题排查