A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 谷粒姐姐 于 2018-7-11 14:19 编辑

4.3 连接 Redis-Cluster4.3.1 客户端工具连接
Redis-cli 连接集群:

file:///C:\Users\user\AppData\Local\Temp\ksohtml\wpsD57E.tmp.png
-c:代表连接的是 redis 集群
测试值的存取:
(1)从本地连接到集群 redis        使用 7001 端口 加 -c 参数
(2)存入 name 值为 abc ,系统提示此值被存入到了 7002 端口所在的 redis (槽是 5798)
(3)提取 name 的值,可以提取。
(4)退出(quit)
(5)再次以 7001 端口进入 ,不带-c
(6)查询 name 值,无法获取,因为值在 7002 端口的 redis 上
(7)我们以 7002 端口进入,获取 name 值发现是可以获取的,而以其它端口进入均不能获取
4.3.2 SpringDataRedis连接 Redis集群
修改品优购工程        在 pinyougou-common 工程添加 spring 配置文件
applicationContext-redis-cluster.xml
<?xml  version="1.0"encoding="UTF-8"?>
<!-- 加载配置属性文件 -->
<context:property-placeholder  ignore-unresolvable="true" location="classpath:properties/redis-cluster-config.properties"/>
<bean  id="redis-clusterConfiguration" class="org.springframework.data.redis.connection.redis-clusterConfiguration">
<property  name="maxRedirects"value="${redis.maxRedirects}"></property>
<property  name="clusterNodes">
<set>
<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host1}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port1}"></constructor-arg>
</bean>
<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host2}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port2}"></constructor-arg>
</bean>
<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host3}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port3}"></constructor-arg>
</bean>
file:///C:\Users\user\AppData\Local\Temp\ksohtml\wps4E7F.tmp.png<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host4}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port4}"></constructor-arg>
</bean>
<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host5}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port5}"></constructor-arg>
</bean>
<bean  class="org.springframework.data.redis.connection.redis-clusterNode">
<constructor-arg  name="host"value="${redis.host6}"></constructor-arg>
<constructor-arg  name="port"value="${redis.port6}"></constructor-arg>
</bean>
</set>
</property>
</bean>
<bean  id="jedisPoolConfig"class="redis.clients.jedis.JedisPoolConfig">
<property  name="maxIdle"value="${redis.maxIdle}"/>
<property  name="maxTotal"value="${redis.maxTotal}"/>
</bean>
<bean  id="jeidsConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<constructor-arg  ref="redis-clusterConfiguration"/>
<constructor-arg  ref="jedisPoolConfig"/>
</bean>
添加属性文件 redis-cluster-config.properties
#cluster  configuration redis.host1=192.168.25.140 redis.port1=7001
redis.host2=192.168.25.140 redis.port2=7002
redis.host3=192.168.25.140 redis.port3=7003
redis.host4=192.168.25.140 redis.port4=7004
redis.host5=192.168.25.140 redis.port5=7005
redis.host6=192.168.25.140 redis.port6=7006
redis.maxRedirects=3
redis.maxIdle=100 redis.maxTotal=600
模拟集群异常测试
关闭节点命令
./redis-cli -p 端 口 shutdown

(1)测试关闭 7001 和 7004, 看看会发生什么。
(2)测试关闭 7001、7002、7003   会发生什么。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马