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"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" file:///C:\Users\user\AppData\Local\Temp\ksohtml\wps2328.tmp.pngxsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"> <!-- 加载配置属性文件 --> <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 会发生什么。