java 环境 redis信创后整合jedis
背景
redis信创后,redis登录信息中增加了用户名,而jedis目前不支持用户名。
方案
修改jedis源代码,使其在调用redis时传入用户名。
步骤
1、pom依赖
<!--redis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、找到BinaryClient
搜索jedis jar中的类:BinaryClient(redis.clients.jedis.BinaryClient)
3、创建BinaryClient
3.1创建包
在自己的项目中创建包:redis.clients.jedis
3.2创建类
在包redis.clients.jedis中创建类BinaryClient
3.2复制类代码
复制(全部复制)jedis BinaryClient.java 的代码到自己创建的BinaryClient.java 中
3.3修改自己的BinaryClient.java
找到方法redis.clients.jedis.BinaryClient#auth 并修改成下面的代码
/**
* 校验权限方法
* @param password 默认情况下只有密码。
* 为了方便些这里把密码设计成用户名!密码
* !是分割分隔符
*/
public void auth(final String password) {
//用户名!密码分割
String[] passArray = password.split("!");
//得到用户名
String u = passArray[0];
//得到密码
String p = passArray[1];
setPassword(password);
//传入用户名、密码
sendCommand(AUTH, u,p);
}
4、修改redis密码
这里为了简化,把用户名和密码都放到密码字段里。格式为:用户名!密码
例如:用户名: admin 密码:123
则传给jedis的密码为:admin!123