Redis集群实现查看搭建redis,redis分片,linux中redissentry直接从后端数据库读取。Redis是一个很好的缓存工具。对于大型网站应用,热点数据量往往是巨大的,几十G到几百G很正常。由于内存大小的限制,使用一个Redis实例显然无法满足需求。这种情况下,就需要使用多个Redis作为缓存数据库。但是如何保证数据存储的一致性呢?这时候就需要搭建一个redis集群。采用合理的机制保证用户的正常访问需求。使用redis集群可以保证数据的分散存储和数据存储的一致性。并在内部实现了高可用机制。实现服务故障的自动迁移。1.1.2集群搭建方案主从划分:3主机3从,共6个端口划分7000-70051.2集群搭建1.2.1准备集群文件夹1.准备集群文件夹cd/usr/local/src/redismkdir集群2。在cluster文件夹下分别创建7000-7005文件夹cdclustersmkdir7000700170027003700470051.2.2复制配置文件说明:复制redis根目录将redis.conf文件复制到cluster/7000/下,原名保存。cd/usr/local/src/rediscpredis.confcluster/7000/1.2.3编辑配置文件1.记下本地绑定IP地址2.关闭保护模式3.修改端口号4.启动后台启动5.修改pid文件6.修改持久化文件路径7.设置内存优化策略8.关闭AOF模式9.打开集群配置10.打开集群配置文件11.修改集群超时时间1.2.4复制修改后的配置文件说明:将7000文件夹下的redis.conf文件复制到7001-7005分别cp7000/redis.conf7001/cp7000/redis.conf7002/cp7000/redis.conf7003/cp7000/redis.conf7004/cp7000/redis.conf7005/1.2.5批量修改说明:将7001-7005文件中的7000改为对应端口号的名称,修改vim7000/redis.conf时注意方向键的使用:%s/7000/7001/g表示将7000替换为7001g:表示全部替换Createstartupscriptvimstart.sh#!/bin/shredis-server7000/redis.conf&redis-server7001/redis.conf&redis-server7002/redis.conf&redis-server7003/redis.conf&redis-server7004/redis.conf&redis-server7005/redis.conf&2。编辑关闭的脚本vimshutdown.sh#!/bin/shredis-cli-p7000shutdown&redis-cli-p7001shutdown&redis-cli-p7002shutdown&redis-cli-p7003shutdown&redis-cli-p7004shutdown&redis-cli-p7005关机&3。启动redis节点shstart.sh4.检查redis节点是否正常启动1.2.7创建redis集群注意:这里的1表示每台host后面只有一个slave在任意目录下执行以下命令:#5.0版本使用C执行languageinternalmanagementclusterredis-cli--clustercreate--cluster-replicas1192.168.126.129:7000192.168.126.129:7001192.168.126.129:7002192.168.126.129:7003192.168.126.129:7004192.168.126.129:7005关于Redis集群失败说明如果redis集群搭搭失败,请按照以下步骤完成配置,前提条件:集群节点必须为null1)。关闭所有redis节点2).删除多余的配置文件dump.rdb/nodes.conf3).查看redis.conf配置文件参考文档...4)。重启redis节点5).执行构建命令1.2.8Redis集群高可用测试1.关闭redis主机。检查故障迁移是否自动实现。2、重新启动关闭的主机。检查是否可以实现自动挂载。一般情况下,可以实现主从挂载个别情况:宕机节点重启后可能挂载到其他master节点(7001-7002)正确操作API:#configureredisclusterredis.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//从配置文件中获取redis节点信息@Value("${redis.nodes}")privateStringnodes;//节点,节点,节点.....@BeanpublicJedisClusterjedisCluster(){Set
