首页 » Web前端 » phpredis暗码认证技巧_动态添加 Redis 密码认证

phpredis暗码认证技巧_动态添加 Redis 密码认证

访客 2024-11-13 0

扫一扫用手机浏览

文章目录 [+]

本文描述一种可行的方案,适用于客户端利用了jedis连接池,做事端利用了redis master-slave集群的情形。

1.定制jedis

phpredis暗码认证技巧_动态添加 Redis 密码认证

对redis返回的缺点的处理,做两处修正:

phpredis暗码认证技巧_动态添加 Redis 密码认证
(图片来自网络侵删)

忽略 (error) ERR Client sent AUTH, but no password is set。
使配置了密码的jedis可以在没有配置密码redis上利用;

发生(error) NOAUTH Authentication required时,将当前connection置为broken,从而将连接踢出连接池。
这样动态给redis添加上密码时,jedis会自动重新创建可用连接。

我已经对jedis 2.8.x版本做好了以上修正。
可以直接下载利用 。
如果利用了更高的版本jedis,可以参考我的代码自行修正;如果利用了更低版本的,建议升级到2.8.x。

2.在项目代码中利用定制的jedis

修正maven配置。
将原来的jedis依赖注释掉,添加对本地的定制jedis的依赖:

由于把定制jedis通过本地jar包的形式供应,maven不会自动加载jedis的依赖,以是需额外添加对commons-pool2的依赖。

3.如果利用了低版本的jedis

老版本jedis的returnBrokenResource和returnResource这两个方法在新版本jedis中已经废弃,如果升级jedis版本的话,须要更换为close方法。

更换前:

更换后:

4.将利用定制jedis的项目代码上线

此时redis尚未添加密码,但定制jedis忽略了“ERR Client sent AUTH, but no password is set”,以是线上运行正常。

5.给redis server添加密码认证

动态添加密码会导致redis主从同步断开,为避免引起全量同步对业务造成较大影响。
须要dba先调大redis master的client-output-buffer-limit和repl-backlog-size参数,再做配置密码操作。

给redis server添加密码的同时,不雅观察业务代码的log,添加完密码后,log中会涌现数次如下报错,随后规复正常。
报错次数是添加密码时,业务做事器的jedis连接池中与该redis server之间连接数量。

redis.clients.jedis.exceptions.JedisConnectionException: NOAUTH Authentication required.

如果利用了shardedJedis,请逐个分片进行操作,最小化对业务做事的影响。

6.改换jedis为官方版本

定制jedis便是为了动态添加密码认证。
添加完毕后,换回官方jedis,方便今后升级。

标签:

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读3 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读1 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读1 评论0