Redis Sentinel集群搭建
介绍
- 使用6.2.4 搭建 主从、哨兵、集群模式。
准备
准备三台电脑
IP地址 主机名称 172.16.241.2 linux1 172.16.241.3 linux2 172.16.241.4 linux3 172.16.241.5 linux4 172.16.241.6 linux5 172.16.241.7 linux6 机器配置
linux 系统
关闭防火墙
systemctl stop firewalld.service
// 关闭systemctl disable firewalld.service
// 禁止开启自动systemctl status firewalld.service
// 查看防火墙状态修改 linux配置
net.core.somaxconn = 2048
vm.overcommit_memory=1
下载redis 包,解压并make(如果make指令缺失,执行
yum install -y gcc automake autoconf libtool make
)$ wget https://download.redis.io/releases/redis-6.2.4.tar.gz$ tar xzf redis-6.2.4.tar.gz$ cd redis-6.2.4$ make
文件目录目录如下:
主从模式
修改三台机器的redis.conf
master(linux1)
bind * //允许其他服务器访问
其他两个Salve(linux2, linux3)
slaveof linux1 6379 // 配置两个slave属于哪个master
启动
启动master,然后启动两个salve
进入src目录执行
./redis-server ../redis.conf
验证主从模式是否搭建完毕
访问其中任意一个redis-cli:
./redis-cli
然后输入./redis-server ../redis.conf
两个salve已经存在。
Java调用
pom引入
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.1</version></dependency>
核心代码
// 主从模式// 1. 向master写Jedis jedis = new Jedis("linux1", 6379);jedis.set("a", "accccc");jedis.close();// 2.从slave读取Jedis readJedis = new Jedis("linux2", 6379);String a = readJedis.get("a");System.out.println("获取从master中写入的数据a = " + a);readJedis.close();
Sentinel哨兵模式
按照主从模式的配置,启动三个节点
修改sentinel.conf, 监控master主机
sentinel monitor mymaster 172.16.241.2 6379 2
启动master(linux1)的sentinel
启动slave1, slave2, 查看master日志
测试
停止slave1,查看master的日志
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxIdle(5);jedisPoolConfig.setMaxTotal(10);jedisPoolConfig.setMinIdle(5);Set<String> sentinels = new HashSet<>();sentinels.add("linux1:26379");sentinels.add("linux2:26379");sentinels.add("linux3:26379");JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("mymaster", sentinels, jedisPoolConfig);Jedis pj = jedisSentinelPool.getResource();pj.set("a", "sentinel");String sentinelStored = pj.get("a");System.out.println("使用sentinel模式存储的a=" + sentinelStored);
重启master,sentinel会选择其中一个slave升级为master,原master重启后,会变为slave不会重新升级为master。
Cluster 集群
跟着官网教程(https://redis.io/topics/cluster-tutorial)
配置说明
- cluster-enabled
<yes/no>
:启用集群支持 - cluster-config-file
<filename>
:该文件无需用户编辑,是Cluster集群节点变化后时自动持久化集群配置 - cluster-node-timeout
<milliseconds>
:Redis集群节点不可用的最长时间,如果主节点在指定的时间内无法访问,那么由从节点进行故障转移 - luster-slave-validity-factor
<factor>
:如果设置为0,那么从节点始终认为自己有效。将始终尝试对主节点进行故障转移 - cluster-migration-barrier
<count>
:一个主节点的将保持连接的最小从节点数量,以便另一个从节点迁移到不再被任何从站覆盖的主节点 - cluster-require-full-coverage
<yes/no>
:如果将其设置为 yes,默认情况下,如果任何节点未覆盖一定百分比的密钥空间,则集群将停止接受写入。如果该选项设置为 no,即使只能处理有关密钥子集的请求,集群仍将提供查询服务。 - luster-allow-reads-when-down
<yes/no>
:如果设置为 no,默认情况下,当集群被标记为失败时,Redis 集群中的节点将停止服务所有流量,或者当节点无法访问时达到法定人数或未达到完全覆盖时。这可以防止从不知道集群中的变化的节点读取可能不一致的数据。可以将此选项设置为 yes 以允许在失败状态期间从节点读取,这对于希望优先考虑读取可用性但仍希望防止不一致写入的应用程序非常有用。它也可以用于使用只有一个或两个分片的 Redis Cluster 时,因为它允许节点在主节点发生故障但无法自动故障转移时继续提供写入服务。
- cluster-enabled
配置和使用Redis集群(官网教程是在一个机器上启动多个服务的伪集群,本文使用之前准备的三台虚拟机)
在三台节点上,解压之前的压缩包为redis-cluster, 并执行
make
指令。三台机器都配置redis.conf(因为我之前在这三台机器上启动了redis,我又不想改端口号。所以讲之前的redis和sentinel都关闭)
最小配置:
cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes
分别启动redis
使用redis-cli启动集群:
./redis-cli --cluster create 172.16.241.2:6379 172.16.241.3:6379 172.16.241.4:6379 172.16.241.5:6379 172.16.241.6:6379 172.16.241.7:6379 --cluster-replicas 1
日志信息如下:
Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.16.241.6:6379 to 172.16.241.2:6379
Adding replica 172.16.241.7:6379 to 172.16.241.3:6379
Adding replica 172.16.241.5:6379 to 172.16.241.4:6379
M: b31d4478d5b521e289491a89da26976a85b1f3c9 172.16.241.2:6379
slots:[0-5460] (5461 slots) master
M: 2cdbe3aba12a65444a00a2170390d1dbf108a865 172.16.241.3:6379
slots:[5461-10922] (5462 slots) master
M: 31ac1ad83587697634bae2a363dfdcd58b15d63e 172.16.241.4:6379
slots:[10923-16383] (5461 slots) master
S: da22af2f724033b2e7cec8fd49d4e80aae4712f3 172.16.241.5:6379
replicates 31ac1ad83587697634bae2a363dfdcd58b15d63e
S: 732ce03d83245d0a0a9b002bbfa8bf959aeb7720 172.16.241.6:6379
replicates b31d4478d5b521e289491a89da26976a85b1f3c9
S: 546e7ed39dc7427bed062e5529e5831c9a35bdcb 172.16.241.7:6379
replicates 2cdbe3aba12a65444a00a2170390d1dbf108a865
Can I set the above configuration? (type 'yes' to accept): yes
Nodes configuration updated
Assign a different config epoch to each node
Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
..
Performing Cluster Check (using node 172.16.241.2:6379)
M: b31d4478d5b521e289491a89da26976a85b1f3c9 172.16.241.2:6379
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: 2cdbe3aba12a65444a00a2170390d1dbf108a865 172.16.241.3:6379
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 546e7ed39dc7427bed062e5529e5831c9a35bdcb 172.16.241.7:6379
slots: (0 slots) slave
replicates 2cdbe3aba12a65444a00a2170390d1dbf108a865
S: 732ce03d83245d0a0a9b002bbfa8bf959aeb7720 172.16.241.6:6379
slots: (0 slots) slave
replicates b31d4478d5b521e289491a89da26976a85b1f3c9
S: da22af2f724033b2e7cec8fd49d4e80aae4712f3 172.16.241.5:6379
slots: (0 slots) slave
replicates 31ac1ad83587697634bae2a363dfdcd58b15d63e
M: 31ac1ad83587697634bae2a363dfdcd58b15d63e 172.16.241.4:6379
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
Check f......原文转载:http://www.shaoqun.com/a/887693.html
跨境电商:https://www.ikjzd.com/
e邮包:https://www.ikjzd.com/w/594.html?source=tagwish
斑马物流:https://www.ikjzd.com/w/1316
zappos:https://www.ikjzd.com/w/330
RedisSentinel集群搭建介绍使用6.2.4搭建主从、哨兵、集群模式。准备准备三台电脑IP地址主机名称172.16.241.2linux1172.16.241.3linux2172.16.241.4linux3172.16.241.5linux4172.16.241.6linux5172.16.241.7linux6机器配置linux系统关闭防火墙systemctlstopfirewall
瀚霖:https://www.ikjzd.com/w/2345
省旅游执法总队开展港澳游大检查 :http://www.30bags.com/a/409401.html
省内景区积极应对雨雪天气 :http://www.30bags.com/a/409101.html
省内自驾旅游攻略 :http://www.30bags.com/a/406755.html
省钱旅游小贴士:http://www.30bags.com/a/414429.html
小坏蛋今晚可以不戴套 求求你别在里面会怀孕:http://lady.shaoqun.com/a/248299.html
老师晚上求我桶她 老师好大好深啊把腿开开:http://lady.shaoqun.com/m/a/247844.html
情感故事:回忆我当坐台小姐的那些年(11/15):http://www.30bags.com/m/a/249663.html
如何增加亚马逊留评率?:https://www.ikjzd.com/articles/146720
8月15日起,HPL征收美线5000$/箱增值附加费!美西铁路进口转运暂停7天:https://www.ikjzd.com/articles/146729
今年中美航运成本飙涨翻倍!一些航线运费上涨近10倍!:https://www.ikjzd.com/articles/146728
小学女生被4个男生拖到男厕所。嫌疑人不满14岁,没有立案:http://lady.shaoqun.com/a/425284.html
没有评论:
发表评论