当前位置:首页 > 问答 > 正文

Redis里怎么快点看已经加载的配置,别翻文档那么麻烦

CONFIG GET

这个命令是你的首选工具,它的用法非常简单,你只需要在Redis命令行里输入 CONFIG GET 后面跟上你想看的配置参数名就行了。

  • 看单个配置:比如你想知道当前Redis的最大内存限制是多少,这个参数名是maxmemory,你就输入:

    CONFIG GET maxmemory

    命令会返回两行结果,第一行是配置项的名字maxmemory,第二行就是它当前设置的值,如果值是0,通常代表“没有限制”。

  • 看所有配置:如果你记不住具体的参数名,或者就想看看现在所有的配置都是啥样,你可以用一个通配符:

    CONFIG GET *

    这会列出Redis服务器当前生效的所有配置参数及其值,这个列表可能会很长,但它是获取完整配置最快的方法,你不需要去硬盘里找配置文件,也不需要重启服务,直接就能看到内存中实际运行着的配置。

为什么CONFIG GET最直接?

因为Redis服务在运行时,它最终使用的配置是“配置文件+命令行启动参数”合并后的结果,你可能修改了配置文件但忘了重启,或者用CONFIG SET命令临时改过设置。CONFIG GET命令查看的正是这个“当前实时生效”的配置,所以它是最准确的。

另一个有用的命令:INFO

INFO命令更像是一个综合仪表盘,它返回的是服务器各种状态的统计信息和一部分重要配置,它后面可以跟不同的“章节”参数。

  • 查看服务器基本信息:直接输入 INFO 会输出海量的信息,包括服务器版本、操作系统、内存、持久化、客户端连接等等,对于快速查看配置来说,信息有点太多了。

    Redis里怎么快点看已经加载的配置,别翻文档那么麻烦

  • 聚焦关键配置:你可以使用INFO的章节功能来只看你关心的部分,与配置相关性较高的章节有:

    • INFO server: 查看服务器版本、运行模式、端口号等。
    • INFO memory: 集中查看所有内存相关的配置和统计,比如used_memory(当前已用内存)、maxmemory(最大内存限制)、mem_fragmentation_ratio(内存碎片率)等,这对于排查内存问题非常方便。
    • INFO persistence: 查看RDB和AOF持久化的相关配置和状态,比如最后一次持久化是否成功、AOF文件大小等。
    • INFO clients: 查看客户端连接数限制(connected_clients)和当前连接数等信息。

INFO命令的优势在于,它不仅能让你看到某些配置项的值,还能看到与这些配置相关的实时运行数据,帮你更好地理解配置的实际效果。

临时修改配置的命令:CONFIG SET

既然说到了查看,顺便提一下修改,如果你在排查问题的时候,想临时调整某个配置看看效果(注意:这通常是临时的,重启后会失效),可以用CONFIG SET命令。

你想把日志级别从notice调整为verbose以便看到更详细的信息,可以输入:

CONFIG SET loglevel verbose

执行成功后,Redis会立即调整日志级别,而无需重启,修改完后,你可以马上用CONFIG GET loglevel来确认修改是否生效。

Redis里怎么快点看已经加载的配置,别翻文档那么麻烦

警告:关于CONFIG REWRITE

你可能会在文档里看到CONFIG REWRITE这个命令,它的作用是将当前通过CONFIG SET命令修改的配置永久化地写入到配置文件中(即你的redis.conf文件)。

我强烈建议你在不熟悉的情况下谨慎使用这个命令,尤其是在生产环境,因为Redis在重写配置文件时,会按照它自己的格式重新排版,可能会打乱你原有的注释和排版顺序,如果你对原始配置文件做过很多自定义的修改和注释,这可能会造成一些混乱,更稳妥的做法是,手动将需要永久化的配置修改到配置文件中,然后重启服务(或者在业务低峰期通过重启加载新配置)。

实战小技巧

  1. 命令行快捷键:在Redis CLI里,你可以使用键盘的上下箭头来翻找之前执行过的命令,避免重复输入。
  2. 管道符分页查看:当使用CONFIG GET *INFO太多,一屏显示不下时,你可以利用操作系统的管道符进行分页查看,在Linux或Mac的终端中,可以这样用:
    redis-cli CONFIG GET * | less

    或者

    redis-cli INFO memory | less

    这样你就可以用空格键翻页,按q键退出了。

  3. 只关注变化:有时候你并不需要看全部配置,而是想知道你的修改和默认配置有什么不同,一个笨但有效的方法是,先在一台全新安装的Redis上执行CONFIG GET *,保存为基准文件,然后在你自己的服务器上执行同样的命令,再用文本对比工具(如diff)去比较差异,这样就能快速定位出自定义的配置项。

忘记文档吧,最快的方式就是打开Redis命令行:

  • 看全部,就用 CONFIG GET *
  • 看某个具体的,就用 CONFIG GET <参数名>
  • 顺带看看运行状态,就用 INFO <章节名>

这些命令直接查询的是运行中的Redis实例,保证你看到的是最真实、最及时的配置情况。