Redis的数据库那些事儿,怎么查看和搞懂它到底藏了啥
- 问答
- 2026-01-07 17:55:49
- 20
Redis和我们平时用的MySQL那种表格状的数据库完全不同,它更像是一个放在内存里的超级大柜子,里面有很多不同类型的“抽屉”,每个“抽屉”都有自己的名字(就是Key),而且不同“抽屉”的构造(数据类型)也不一样,用来放不同的东西,要搞懂Redis藏了啥,关键就是学会打开这些“抽屉”看看。
第一件事:连接上Redis
在你查看任何东西之前,你得先进入Redis的大门,这通常通过一个叫redis-cli的命令行工具来完成,就像你要管理你的电脑,得先打开“命令提示符”或“终端”一样,你只需要在终端里输入redis-cli,如果Redis就在你本机上,而且用的是默认端口6379,你就可以直接连上了,如果Redis在别的机器上或者用了别的密码,你需要加上主机地址(-h)和密码(-a)等参数,连上之后,你会看到一个提示符,比如0.0.1:6379>,这说明你已经准备好了,可以开始“寻宝”了。
第二件事:认识Redis的五种主要“抽屉”类型
这是最核心的部分,Redis之所以快和好用,就是因为这些不同结构的“抽屉”,你不能用同一种方法去查看所有类型的“抽屉”,所以必须先判断你面前的Key是哪种类型。

-
字符串(String):这是最简单、最常用的“抽屉”,它就是一个键对应一个值,这个值可以是文本、数字甚至是图片的二进制数据,你可以用它来存用户的登录状态、一个简单的计数器或者一段缓存的内容。
- 怎么查看:使用
GET key_name命令,你有一个key叫user:1001:name,你输入GET user:1001:name,它就会直接把里面存的名字,张三”,给你显示出来。
- 怎么查看:使用
-
哈希(Hash):这个“抽屉”有点像一个小型的表格,一个主Key下面,包含了多个字段(Field)和值(Value),非常适合用来存储一个对象的多个属性,比如存储一个用户的信息,用户名、年龄、城市等都可以放在同一个Hash里。
- 怎么查看:
- 查看这个Hash的所有字段和值:
HGETALL key_name,它会一下子把所有的东西都列出来。 - 只看某个特定字段的值:
HGET key_name field_name,比如HGET user:1001 age就只查看年龄。
- 查看这个Hash的所有字段和值:
- 怎么查看:
-
列表(List):这个“抽屉”就是一个有序的字符串列表,你可以从左边或者右边把元素推进去或拉出来,它很像一个队列或者栈,常用来做消息队列、最新文章列表等。
- 怎么查看:使用
LRANGE key_name start stop命令,这个命令可以查看列表中指定范围内的所有元素。LRANGE news_list 0 9就是查看名为news_list的列表里,最前面10个元素(索引从0开始)。
- 怎么查看:使用
-
集合(Set):这个“抽屉”的特点是里面放的元素都是唯一的,不允许重复,而且顺序是乱的,它的主要用处是存储不重复的数据,比如文章的标签、共同好友等。

- 怎么查看:使用
SMEMBERS key_name命令,这个命令会把这个集合里所有的成员都给你列出来,但顺序是不保证的。
- 怎么查看:使用
-
有序集合(Sorted Set):这是Set的升级版,它给每个元素都绑定了一个分数(Score),然后根据这个分数来为元素从小到大排序,它是实现排行榜的绝佳选择。
- 怎么查看:
- 按分数范围查看:
ZRANGE key_name start stop [WITHSCORES],加上WITHSCORES选项,它会连分数一起显示出来。 - 按排名倒序查看(比如看排行榜前10名):
ZREVRANGE key_name 0 9 WITHSCORES。
- 按分数范围查看:
- 怎么查看:
第三件事:高级侦查技巧
光会看单个“抽屉”还不够,有时候我们想知道这个“大柜子”的整体情况。
-
我怎么知道有哪些“抽屉”(Key)? 使用
KEYS pattern命令,这个命令可以按照模式匹配来查找Key,比如KEYS user:*会找出所有以user:开头的Key。但是要非常小心! 如果你的Redis里Key非常多,这个命令可能会让服务器卡住一会儿,因为它会遍历所有的Key,在生产环境中要谨慎使用,一个更安全的选择是使用SCAN命令,它可以渐进式地遍历,不会阻塞服务。
-
我面前这个“抽屉”是哪种类型? 在你用
GET命令去查一个Key之前,最好先知道它是什么类型,不然会报错,用TYPE key_name命令就可以直接告诉你这个Key是string, hash, list, set, 还是zset。 -
这个“抽屉”有多大? 对于不同的数据类型,有不同的命令来看里面有多少个元素:
- String(字符串):
STRLEN key_name看值的长度。 - Hash(哈希):
HLEN key_name看有多少个字段。 - List(列表):
LLEN key_name看有多少个元素。 - Set(集合):
SCARD key_name看有多少个成员。 - Sorted Set(有序集合):
ZCARD key_name看有多少个成员。
- String(字符串):
-
这个“抽屉”什么时候过期? Redis可以给Key设置一个存活时间(TTL),用
TTL key_name命令可以查看这个Key还有多少秒会过期,如果返回-2,表示这个Key已经不存在了;返回-1,表示这个Key永不过期。
总结一下
要搞懂Redis到底藏了啥,你就像是一个仓库管理员:
- 先用
KEYS或SCAN看看仓库里有哪些货架(Key)。 - 走到一个货架前,用
TYPE命令看看它是什么类型的储物柜(数据类型)。 - 根据储物柜的类型,选择正确的工具(命令)打开它:
GET用于单件物品,HGETALL用于小格子柜,LRANGE用于顺序排列的货架,SMEMBERS用于无顺序的收纳箱,ZRANGE用于带分数的排行榜货架。 - 还可以用
TTL看看物品的保质期还剩多久。
通过组合使用这些简单的命令,你就能对Redis数据库里的内容了如指掌了,多在实际环境中敲命令试试,比只看理论要学得快得多。
本文由帖慧艳于2026-01-07发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/76334.html
