您现在的位置:首页 > >

Redis缓存集群 配置类的编写--代码(案例)

发布时间:

注意:在Redis服务端里,保存的数据类型是 String类型。


JedisConfig配置类


package com.jt.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;
import redis.clients.jedis.*;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Configuration //标识我是一个配置类
@PropertySource("classpath:/properties/redis.properties")
public class JedisConfig {


/* Redis集群,即多台Redis的配置 */

@Value("${redis.nodes}")
private String nodes; //node,node,node是字符串的节点

@Bean //实例化集群的JedisCluste对象之后交给Spring容器管理
public JedisCluster jedisCluster(){
Set set = new HashSet<>(); //创建集合存储集群里的每台Redis地址和端口
String[] nodeArray = nodes.split(","); //字符串按逗号分隔,得到字符串数组对象
for(String node : nodeArray){ //遍历数组host:port
String[] nodeTemp = node.split(":");
String host = nodeTemp[0]; //按数组下标取值
int port = Integer.parseInt(nodeTemp[1]); //字符类型转换为整数类型
HostAndPort hostAndPort = new HostAndPort(host, port); //创建每一台的地址和端口
set.add(hostAndPort);
}
return new JedisCluster(set); //返回集群对象
}



//-----------------------------------------------------------------------------------------------------------
/* Redis分片机制,即多台Redis的配置 */
/* JedisShardInfo对象,是Redis分片机制对象 */
/* Redis分片机制,要跟哨兵机*岷鲜褂茫ㄓ腥毕荩
分片实现内存的扩容,哨兵实现高可用。
(后期用Redis集群取代 分片和哨兵)*/

/* @Value("${redis.nodes}")
private String nodes; //node,node,node
*//**
* 添加Redis分片的配置
* 需求1: 动态的获取IP地址/PORT端口
* 动态的获取多个的节点信息. 方便以后扩展
*//*
@Bean
public ShardedJedis shardedJedis(){
List list = new ArrayList<>();
String[] strArray = nodes.split(","); //[node,node,node],对字符串进行分割,生成字符数组
for (String node : strArray){ //ip:port
String host = node.split(":")[0]; //将遍历后的节点再进行分割,得出数组,在按下标取值
int port = Integer.parseInt(node.split(":")[1]); //把字符类型转换成int类型
list.add(new JedisShardInfo(host,port ));
}
return new ShardedJedis(list);
}
*/



//-----------------------------------------------------------------------------------------------------------
/* 单台Redis的配置 */

/* @Value("${redis.host}") //spel表达式 yml为准
private String host;
@Value("${redis.port}")
private Integer port;
*//**
* 将jedis对象交给spring容器管理
*//*
@Bean //默认条件下是单例对象
//@Scope("prototype") //设置为多利对象
public Jedis jedis(){
//由于将代码写死不利于扩展,所以将固定的配置添加到配置文件中
return new Jedis(host,port);
}*/
}


redis.properties配置
工作中 Redis集群的主从划分:
3台主机+6台从机,共9台。就足够了


#添加redis的配置

#单台Redis的配置
#redis.host=192.168.126.129
#redis.port=6379

#配置Redis分片机制,即多台的redis信息
#redis.nodes=192.168.126.129:6379,192.168.126.129:6380,192.168.126.129:6381

#配置Redis集群
redis.nodes=192.168.126.129:7000,192.168.126.129:7001,192.168.126.129:7002,192.168.126.129:7003,192.168.126.129:7004,192.168.126.129:7005


友情链接: 团党工作范文 工作范文 表格模版 社科文档网 营销文档资料 工程文档大全