Redis
默认支持密码验证,一般Redis
都在内网访问,可以限制IP
等,不用密码也没有关系,不过信息安全等级保护评测要求Redis
配置密码访问。
单节点Redis配置密码
redis.conf
配置密码,找到requirepass
项目,去掉注释
# requirepass foobared
requirepass 12345678
修改后重启即可。
如果只是测试一下,可以在redis-cli中设置临时密码,下次重启就无效了,已连接客户端不受影响:
redis-cli -h 10.181.3.25 -p 6379
10.181.3.25:6379>CONFIG SET requirepass 1234567890
客户端连接
redis-cli -h 10.181.3.25 -p 6379
10.181.3.25:6379> get key
(error) NOAUTH Authentication required.
认证使用AUTH
命令,带上密码:AUTH 12345678
:
10.181.3.25:6379> AUTH 12345678
OK
也可以在在redis-cli
连接的时候带上密码:
redis-cli -h 10.181.3.25 -p 6379 -a 12345678
10.181.3.25:6379> get key
SpringBoot连接
如果SpringBoot
客户端没有配置密码会报错,下面是Redisson
错误:
org.redisson.client.RedisAuthRequiredException: NOAUTH Authentication required.. channel: [id: 0x253ac582, L:/10.181.3.97:49802 - R:/10.181.3.25:6379] data: CommandData [promise=RedissonPromise [promise=ImmediateEventExecutor$ImmediatePromise@52cbca32(incomplete)], command=(EVAL), params=[local value = redis.call('hget', KEYS[1], ARGV[2]); if value == false then return nil; end; local t,..., 5, appws:dev:ws.account.nonce, redissontimeoutset:{appws:dev:ws.account.nonce}, redissonidleset:{appws:dev:ws.account.nonce}, redissonmap_cache__last_accessset:{appws:dev:ws.account.nonce}, {appws:dev:ws.account.nonce}:redisson_options, 1662365670189, PooledUnsafeDirectByteBuf(ridx: 0, widx: 26, cap: 256)], codec=org.redisson.codec.FstCodec]
springboot
然后连接配置,配置上密码即可:
spring:
redis:
host: 10.181.3.25
port: 6379
password: 12345678
集群配置密码
集群配置和单机差不多,主Redis
配置和单机一样,从服务器需要配置主服务器的密码
主Redis
上redis.conf
配置文件替换内容:
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7000.conf
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7001.conf
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7002.conf
从Redis
上redis.conf
配置文件替换内容
主要配置:requirepass 12345678
和masterauth 12345678
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7000.conf
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7001.conf
sed -i 's/# requirepass foobared/requirepass 12345678/g' redis7002.conf
sed -i 's/# masterauth <master-password>/masterauth 12345678/g' redis7000.conf
sed -i 's/# masterauth <master-password>/masterauth 12345678/g' redis7001.conf
sed -i 's/# masterauth <master-password>/masterauth 12345678/g' redis7002.conf
重启服务器即可。
客户端连接
和单机版差不多,连接方式也一样
redis-cli -h 10.181.3.25 -p 7000
10.181.3.25:7000> cluster nodes
NOAUTH Authentication required.
10.181.3.25:7000> auth 12345678
SpringBoot
连接
配置yml
连接:
spring:
redis:
cluster:
nodes: xxxx
password: 12345678
配置完成。