redis集群操作类
创作不易,请勿抄袭,转载请注明出处。如有疑问,请加微信 wx15151889890,谢谢。
[本文链接:]https://blog.csdn.net/wx740851326/article/details/83744118
话不多说,直接上代码:
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
/**
* define redis handlers
*
* @author dmvoishi
* @since 20181024
* @category initRedisCluster addNodes getJedisCluster
*/
public class RedisUtil {
public static JedisCluster initRedisCluster(Properties prop) {
// 根据配置文件实例化一个集群
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
String NODE_LIST = prop.getProperty("NODE_LIST").trim();
Set<HostAndPort> nodes = addNodes(NODE_LIST);
String MAX_WAIT = prop.getProperty("MAX_WAIT");
String MAX_IDLE = prop.getProperty("MAX_IDLE");
String TIME_OUT = prop.getProperty("TIME_OUT").trim();
String MAX_ACTIVE = prop.getProperty("MAX_ACTIVE");
poolConfig.setMaxTotal(Integer.parseInt(MAX_ACTIVE));
poolConfig.setMaxIdle(Integer.parseInt(MAX_IDLE));
poolConfig.setMaxWaitMillis(Integer.parseInt(MAX_WAIT));
poolConfig.setJmxEnabled(true);
poolConfig.setTestWhileIdle(true);
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
JedisCluster jedisCluster = new JedisCluster(nodes,
Integer.valueOf(TIME_OUT), poolConfig);
return jedisCluster;
}
private static Set<HostAndPort> addNodes(String nodes) {
// TODO Auto-generated method stub
Set<HostAndPort> nodeList = new HashSet<HostAndPort>();
String[] node = nodes.split(",");
for (int i = 0; i < node.length; i++) {
if (null != node[i]) {
String[] url = node[i].split(":");
nodeList.add((new HostAndPort(url[0].trim(), Integer
.valueOf(url[1]))));
}
}
return nodeList;
}
public static JedisCluster getJedisCluster() {
String redisConfigPath = "hdfs:///user/hdfs/redis.cfg";
// String path = "C:/config/redis.cfg";
Properties redisProp = CommonUtils
.getPropertiesFromHDFS(redisConfigPath);
// .getPropertiesFromLocal(path);
JedisCluster jedisCluster = RedisUtil.initRedisCluster(redisProp);
return jedisCluster;
}
}
文内用到的一些通用工具类,请翻阅鄙人的其他文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端