针对JedisShardInfo中无法修改db的解决办法
2024-08-27 11:13:36
package com.ldr.bean; import java.lang.reflect.Field; import redis.clients.jedis.JedisShardInfo; public class MyJedisInfo { String host;
int port;
int db; public JedisShardInfo newInstance() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
JedisShardInfo jedisShardInfo=new JedisShardInfo(host,port) ;
Class<? extends JedisShardInfo> clz = jedisShardInfo.getClass();
Field declaredField = clz.getDeclaredField("db");
declaredField.setAccessible(true);
declaredField.set(jedisShardInfo, db);
return jedisShardInfo;
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public int getDb() {
return db;
} public void setDb(int db) {
this.db = db;
}
public int getPort() {
return port;
} public void setPort(int port) {
this.port = port;
}
}
spring中的application.xml中配置如下
<!-- spring集成redis -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal">
<value>${redis.maxTotal}</value>
</property>
<property name="maxIdle">
<value>${redis.maxIdle}</value>
</property>
<property name="testOnBorrow" value="true"/>
<property name="testOnReturn" value="true"/>
</bean> <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" scope="singleton">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1">
<list>
<!-- <bean class="redis.clients.jedis.JedisShardInfo">
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" />
</bean> --> <ref bean="jedisShardInfo"/><!-- 生产环境请换成上述 -->
</list>
</constructor-arg>
</bean> <!-- 以下配置上生产请注释掉 begin-->
<bean id="jedisFactory" class="com.ldr.bean.MyJedisInfo">
<property name="host" value="${redis.host}"></property>
<property name="port" value="${redis.port}"></property>
<property name="db" value="${redis.db}"></property>
</bean> <bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo"
factory-bean="jedisFactory" factory-method="newInstance" >
</bean>
<!-- 以上配置上生产请注释掉 end -->
最新文章
- 杂项之图像处理pillow
- C#中的继承
- 右下角浮窗&;动画效果
- webdriver中PDF控件无法显示的问题(IE兼容性)
- 对C#对象的Shallow、Deep Cloning认识【转】
- MIUI选项框开关样式模拟
- ActionBar官方教程(5)ActionBar的分裂模式(底部tab样式),隐藏标题,隐藏图标
- 愉快的开始 - 零基础入门学习Python000
- 【HDU 4451 Dressing】水题,组合数
- ext4 delalloc相关
- JavaScript高级程序设计:第九章
- Java程序设计-表达式运算(个人博客)
- 将studio项目 转换为eclipse项目
- expect--自动批量分发公钥脚本
- jenkins(3): jenkins执行shell命令
- GlusterFs卷的简单操作
- 举例说明Unicode 和UTF-8之间的转换
- 深度学习课程笔记(十六)Recursive Neural Network
- 485. Max Consecutive Ones最大连续1的个数
- 【Java】JABX实现对象与XML互转