1 redis集群原理
2 搭建redis集群
2.1 redis搭建集群
192.168.25.143:6379
192.168.25.143:6380
192.168.25.144:6381
192.168.25.144:6382
192.168.25.145:6383
192.168.25.145:6384
2.2 redis的安装
Redis 集群管理工具 redis.trib.rb依赖ruby环境,首先需要安装ruby环境
在线安装ruby
yum –y install ruby
yum –y install rubygems
在linux里面执行就ok了
安装ruby和 redis的接口程序
gem install redis-3.0.0.gem
2.3 复制redis文件
2.4 删除单机版的数据文件
2.5 修改配置信息
Vim redis.conf注释去掉
开启集群
2.6 复制redis到其他的服务器
scp -r /usr/redisCluster/ xxxxxx02:/usr/
scp -r /usr/redisCluster/ xxxxxx03:/usr/
scp -r /usr/redisCluster/ xxxxxx04:/usr/
2.6 更改复制后的6个redis服务器的端口号
Bin目录下的redis.conf中进行修改
另外两台服务器上的四个redis端口依次改为6381/6382、6383/6384
2.7 把6个redis服务器关联起来形成集群
依赖redis-trib.rb 脚本,所以一定要安装ruby环境。
cd src/
在src目录下
把所有的redis服务器都启动了然后在src目录下执行下面的脚本
创建集群的脚本
./redis-trib.rb create --replicas 1192.168.25.143:6379 192.168.25.143:6380 192.168.25.144:6381 192.168.25.144:6382192.168.25.145:6383 192.168.25.145:6384
选择yes 进行槽位的分配
集群成功
2.8 使用命令连接redis集群
查看你集群信息
查看redis 集群节点
保存数据到redis集群中,在保存数据的时候是根据算法算出槽位,然后再把数据保存到对应的槽位
2.9 java接口操作redis集群
//集群版 redis
@Test
publicvoid demo5() {
//创建jedis的连接池配置类
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数
config.setMaxTotal(50);
//节点
Set<HostAndPort> hosts = new HashSet<HostAndPort>();
//配置多个ip和端口
hosts.add(new HostAndPort("192.168.25.143",6379));
hosts.add(new HostAndPort("192.168.25.143",6380));
hosts.add(new HostAndPort("192.168.25.144",6381));
hosts.add(new HostAndPort("192.168.25.144",6382));
hosts.add(new HostAndPort("192.168.25.145",6383));
hosts.add(new HostAndPort("192.168.25.145",6384));
//创建客服端(集群版)
JedisCluster jedisCluster = new JedisCluster(hosts,config);
//保存数据
jedisCluster.set("赵六","aaabbb");
String pasd = jedisCluster.get("赵六");
System.out.println(pasd);
}
2.10 jedisCluster整合spring
<!--Redis的集群版Java接口配置交由Spring管理 -->
<bean id="jedisCluster"class="redis.clients.jedis.JedisCluster">
<!-- 配置6个IP及端口号到构造器 -->
<constructor-arg index="0">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0">
<value>192.168.25.143</value>
</constructor-arg>
<constructor-arg index="1">
<value>6379</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0">
<value>192.168.25.143</value>
</constructor-arg>
<constructor-arg index="1">
<value>6380</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<!-- IP -->
<constructor-arg index="0">
<value>192.168.25.144</value>
</constructor-arg>
<!-- port -->
<constructor-arg index="1">
<value>6381</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<!-- IP -->
<constructor-arg index="0">
<value>192.168.25.144</value>
</constructor-arg>
<!-- port -->
<constructor-arg index="1">
<value>6382</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<!-- IP -->
<constructor-arg index="0">
<value>192.168.25.145</value>
</constructor-arg>
<!-- port -->
<constructor-arg index="1">
<value>6383</value>
</constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<!-- IP -->
<constructor-arg index="0">
<value>192.168.25.145</value>
</constructor-arg>
<!-- port -->
<constructor-arg index="1">
<value>6384</value>
</constructor-arg>
</bean>
</set>
</constructor-arg>
<!-- 连接池的配置类 -->
<constructor-arg index="1" ref="jedisPoolConfig"/>
</ bean >