redis 配置认证密码,不管是针对单机或集群,主要有两种方式,一是无需重启的热设置,另一个是需要重启服务;不管哪种方式,都围绕着服务器 config 命令进行操作。
无需重启 redis 配置方式(推荐)
这里面先介绍单机 redis 的设置方式。
- 第一步,通过客户端命令登陆后,执行密码设置命令:
-
redis> config set requirepass my_redis
如果之前设置过密码,会提示需要输入密码认证信息。
(error) NOAUTH Authentication required.
输入认证密码后,提示 OK 后,继续上述设置命令,返回 OK。
redis> auth my_psd OK redis> config set requirepass my_redis OK
这时,我们可以通过 config get 命令查看设置密码的信息。
redis> config get requirepass 1) "requirepass" 2) "my_redis"
值得注意的是,到此步只是把 redis 的密码认证设置在了 redis 服务的内存空间,并没有持久化,redis 服务重启后会立即失效,需要下一步的持久化的工作。
- 第二步,持久化第一步设置的认证密码,主要有两种方式,一是直接到 redis 服务启动的配置文件里直接修改,另一种是通过 redis 自带的持久化配置命令 config rewrite。
- 第一种直接在 redis 配置文件里,增加如下配置密码:
requirepass my_redis
第二种通过 config rewrite 命令直接持久化到相应的配置文件,如下:
redis> config rewrite OK
设置 OK 后,到对应的配置文件的最后处,会发现如下追加信息:
# Generated by CONFIG REWRITE requirepass "my_redis"
这里需要注意的是,如果 redis 服务不是通过配置文件启动的,直接采用 redis 硬编码的默认配置启动(未指定配置文件),就会提示由于服务启动未使用配置文件,不能持久化的信息:
redis> config rewrite (error) ERR The server is running without a config file
所以,在生产环境中,尽量基于配置文件启动。
重启 redis 服务的密码设置方式
这种方式比较简单粗暴,个人不推荐;它主要有两种 case,一是没有依赖配置文件启动时,二是依赖配置文件启动时。
若没有依赖配置文件启动,其实是无需重启服务,且不可持久化,服务重启就失效,用 config set requirepass xxx
命令即可搞定。
若依赖配置文件启动,直接到配置文件追加认证密码设置,如 requirepass xxx
后,重启 redis 服务即可。
集群的认证密码配置方法
待续...