redis集群+SSM整合使用

首先是创建redis-cluster文件夹:
redis集群+SSM整合使用
文章图片
【redis集群+SSM整合使用】因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.168.0.109 192.168.0.110),分别在两台虚拟机的/opt/redis-4.0.1/redis-cluster下创建三个节点文件夹
192.168.0.109:
redis集群+SSM整合使用
文章图片
192.168.0.110:
redis集群+SSM整合使用
文章图片
以上6个节点全部创建完成,分别再在这六个文件夹下创建redis.conf配置文件,其中配置如图:

port 7000 bind 192.168.0.109 daemonize yes pidfile /var/run/redis_7000.pid cluster-enabled yes cluster-config-file nodes_7000.conf cluster-node-timeout 10000 appendonly yes




其中需要将port pidfile cluster-config-file修改成节点端口号一致,bind改成本机ip,以便远程访问,全部修改完后,即可启动redis服务:
启动命令:
192.168.0.109下的命令:“for((i=0; i<=2; i++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; done”
192.168.0.110下的命令:“for((i=3; i<=5; i++)); do /opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-cluster/700$i/redis.conf; done”
redis集群+SSM整合使用
文章图片
可以看到后台模式启动成功的日志打印,两台机器都需要依次启动所有节点。节点启动完成后,即可创建集群服务:
在其中一台虚拟机上执行如下命令“/opt/redis-4.0.1/src/redis-trib.rb create --replicas 1 192.168.0.109:7000 192.168.0.109:7001 192.168.0.109:7002 192.168.0.110:7003 192.168.0.110:7004 192.168.0.110:7005”
redis集群+SSM整合使用
文章图片
千万记住只需要在一台上执行即可,如果卡在join处不能往下执行,一般情况是出在防火墙端口被禁导致,有两种方式可以解决:
1、不但需要开启7000对外端口,还需要开启17000(因为redis总线端口需要加10000)。
2、直接关闭所有防火墙(因我这里是自己的环境,所以直接关闭了防火墙服务)。
出现上图运行日志,基本就成功搭建好了集群服务,可以清晰的看到各个节点的主从关系,环境搭建好后,这里我们就和我上篇写到的SSM架构进行联合使用。
上次整合的mybaits二级缓存是个单机版本,由于这种方式不支持集群,所以这里从新使用jedis-cluster进行另外一种redis集群与java整合使用的方式。
首先在redis.properties文件中新增集群机器的配置,将6个节点依次加入配置:

#cluster cluster1.host.port=192.168.0.109:7000 cluster2.host.port=192.168.0.109:7001 cluster3.host.port=192.168.0.109:7002 cluster4.host.port=192.168.0.110:7003 cluster5.host.port=192.168.0.110:7004 cluster6.host.port=192.168.0.110:7005

redis配置文件中也与之前改动比较多,我直接列出来,可以直接拷去用了。
spring-redis.xml
classpath:redis.properties




将上篇SSM+redis整合中mybatis的开启缓存配置全部禁用,即可启动服务测试了
首先直接注入jedisCluster获取一个集群对象。
redis集群+SSM整合使用
文章图片
这里为了方便,我数据同步直接用了java写了个简单思想,其他方法也可实现,例如Spring AOP方式实现,使用第三方插件,或者数据库层面实现都可行。
redis集群+SSM整合使用
文章图片
启动成功后,反复调用方法。可以看到控制台并未打印sql语句,而是直接在redis集群中直接获取得到数据。以上简单的redis集群实例已经完成,因为时间关系,其中linux中有些坑我没有细细写出,如有疑问可以留言。
如有不对的地方或者更好的建议,欢迎评论中指出。我会尽快学习修改。

    推荐阅读