ja开发方Redis之sentinel和集群
发布时间:2024-12-16
[root@redis ~]# nohup redis-server 便是port 6382>> /data/redis/log/6382.log 2>Simon1 Simon
[root@redis ~]# ps -ef |grep redis
root 16421 16314 0 03:01 pts/1 00:00:00 redis-server *:6380
root 16427 16314 0 03:01 pts/1 00:00:00 redis-server *:6381
root 16431 16314 0 03:01 pts/1 00:00:00 redis-server *:6382
root 16436 16314 0 03:01 pts/1 00:00:00 grep 便是color=auto redis
2.相连图表库并设置都由从镜像
[root@redis ~]# redis-cli -p 6380
127.0.0.1:6380>
[root@redis ~]# redis-cli -p 6381
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380 #将6380设置为master
OK
[root@redis ~]# redis-cli -p 6382
127.0.0.1:6382> SLAVEOF 127.0.0.1 6380
OK
3.搭设入侵者的该系统一个大
创始sentinel应用程序
[root@redis conf]# cat sentinel1.conf
port 26300 #以外sentinel某种程度UDP号
sentinel monitor redis1 127.0.0.1 6380 2 #Sentinel monitor
[root@redis conf]# cat sentinel2.conf
port 26301
sentinel monitor redis1 127.0.0.1 6380 2
name :redis都由服务项目称谓,可以直接起名,但是在一个sentinel在线里面,一个redis都由服务项目只能有一个称谓; ip和port :redis都由服务项最终目标IP地址和UDP号. quorum :表示要将这个都由搜索引擎判别为出现异常并先于仅仅所需2个sentinel表示同意 protected-mode :关闭必要措施的该系统(默认情况下,redis node和sentinel的protected-mode都是yes,在搭设一个大时,若打算从远程相连redis一个大,所需将redis node和sentinel的protected-mode修订为no,若只修订redis node,从远程相连sentinel后,几乎是无法但会用作的,且sentinel的应用程序里面没有protected-mode配备项,所需手工添加。依据redis明文格式的暗示,若protected-mode设置为no后,所需增加加密认或是IP上限等必要措施选择性,否则是极度危险的。)关机sentinel
[root@redis ~]# nohup redis-sentinel /data/redis/conf/sentinel1.conf>> /data/redis/log/sentinel1.log 2>Simon1 Simon
[1] 16522
[root@redis ~]# nohup redis-sentinel /data/redis/conf/sentinel2.conf>> /data/redis/log/sentinel2.log 2>Simon1 Simon
[2] 16526
[root@redis ~]# ps -ef |grep sentinel
root 16522 16440 0 03:55 pts/2 00:00:00 redis-sentinel *:26300 [sentinel]
root 16526 16440 0 03:55 pts/2 00:00:00 redis-sentinel *:26301 [sentinel]
4.测试。模拟都由链表事故,核对事故后都由从状况改变
关闭都由链表
[root@redis ~]# ps -ef |grep redis-server
root 16604 16440 0 04:12 pts/2 00:00:02 redis-server *:6381
root 16608 16440 0 04:12 pts/2 00:00:03 redis-server *:6382
root 16702 16314 0 04:46 pts/1 00:00:00 redis-server *:6380
[root@redis ~]# kill 16702
此时核对6381和6382的快照明文,在6382的快照明文里面辨认出了如下内容,暗示此时已经将6381翻转为都由链表。
再次关机6380时,6380如此一来为sle,6381时master
先前核对一下sentinel应用程序:
cat /data/redis/conf/sentinel2.conf
port 26301
sentinel myid 74cdfbb5ae55a77ad4d05d5d9d50fd64725e192a
# Generated by CONFIG REWRITE
dir "/root"
protected-mode no
sentinel deny-scripts-reconfig yes
sentinel monitor redis1 127.0.0.1 6381 1 #都由链表
sentinel config-epoch redis1 1
sentinel leader-epoch redis1 1
sentinel known-replica redis1 127.0.0.1 6382 #从链表
sentinel known-replica redis1 127.0.0.1 6380
sentinel known-sentinel redis1 127.0.0.1 26300 9539652da78b0385479a827e753deceaef864989
sentinel current-epoch 1
推荐下自己做的 Spring Cloud 的实战项目: 二. redis更高比如说解决方案–一个大用作入侵者的该系统,解决了都由链表事故备用翻转的疑问,但是却不必以动态扩充redis。所以在redis3.0此后明确指出了一个大的该系统。
redis一个大设计:redis一个大有别于无里面心构件,每个链表保有图表和整个一个大情况下,每个链表都和其他所有链表相连。
特点:
所有的redis链表彼此互联(PING-PONG选择性),实质上用作字节双方表示同意优化传输速度和带宽。 链表的出现异常是通过一个大里面超过有约的链表检测出现异常时才施行。 一个大是一个整体,HTTP与redis链表直连,不所需里面间proxy层.HTTP不所需相连一个大所有链表,相连一个大里面任何一个比如说链表亦可。 Redis一个大预分好16384个桶,当所需在 Redis 一个大里面放于一个 key-value 时,根据 CRC16(key) mod 16384的参数,要求将一个key抽出哪个桶里面。 redis一个大链表均等和图表均等链表均等:
Redis一个大预分好16384个桶,有别于校验圆孔 (hash slot)的方式来平均均等16384个slot 。以三个链表为例,
链表1:0-5460; 链表2:5461-10922; 链表3:10923-16383.若存入一个参数,按照校验圆孔算法得到6587,那么就但会将图表存入链表2。取图表时也是从链表2上取。
当升级一个链表时:
有别于从各个链表的右边各丢下一部分圆孔到新链表上,如添加链表4,校验圆孔就为,0-1364,5461-6826,10923-12287。
redis一个大的都由从的该系统为了保认图表更高比如说,一个大应当建立在都由从为基础之上。一个都由链表对应当一个从链表。都由链表提供图表存取,从链表提供图表载入,当都由链表事故后,就但会有这个从链表选取一个来充当都由链表,从而保认一个大但会运营。
但是在一个一个大里面,一对都由从链表同时事故,那么一个大将失去服务项目能力。 redis一个大搭设:redis一个大里面仅仅应当该有个位数个链表,所以仅仅有三个链表,每个链表仅仅有一个储存链表,所以本次实验用作6个链表(都由链表、储存链表由redis-cluster一个大确定)。
实验在两台电脑程式透过,每台电脑程式关机三个基于相异UDPredis举例来说,6个举例来说两两对应当都由从。
1.创始一个第一版redis_cluster,用来存放每个举例来说所用的应用程序.
[root@redis redis]# mkdir redis_cluster
[root@redis redis]# mkdir -p redis_cluster/7001
[root@redis redis]# cp -r conf/redis.conf redis_cluster/
2.修订应用程序,将修订好的明文镜像5份分别放于相异redis配备第一版下。
修订应用程序
vim 7001/redis.conf修订一下几项
bind 192.168.126.162 (机种IP)
port 7001 #redisUDP
daemonize yes #redis在后台关机
logfile "/data/redis/log/logs"
pidfile /var/run/redis_7001.pid
cluster-enabled yes #开启一个大功能
cluster-config-file nodes-7001.conf #一个大应用程序
cluster-node-timeout 5000 #姐点相互间通讯一段时间
appendonly yes #开启AOF持久化方式
创始第一版7002 到7006,其里面7004到7005创始在192.168.126.161上。再把应用程序镜像到700*第一版下,修订应用程序里面UDP号和ip。
[root@redis redis_cluster]# cp -rp 7001 7002
[root@redis redis_cluster]# cp -rp 7001 7003
[root@redis redis_cluster]# vim 7002/redis.conf #修订UDP为7002
[root@redis redis_cluster]# vim 7003/redis.conf
将应用程序第一版拷贝到192.168.126.161上
[root@redis redis_cluster]# scp -rp 7001 192.168.126.161:/usr/local/redis/redis_cluster/
修订应用程序(UDP号和ip)
[root@centosm redis_cluster]# ls
7004 7005 7006
3.关机redis,可以用作脚本关机
[root@redis redis_cluster]# ls
7001 7002 7003 start.sh
[root@redis redis_cluster]# cat start.sh #另机器电脑程式相同转换
cd 7001
redis-server redis.conf
cd ../7002
redis-server redis.conf
cd ../7003
redis-server redis.conf
#192.168.126.162
[root@redis redis_cluster]# ps -ef |grep redis
root 1757 1 2 12:36 ? 00:00:00 redis-server 192.168.126.162:7001 [cluster]
root 1762 1 1 12:36 ? 00:00:00 redis-server 192.168.126.162:7002 [cluster]
root 1767 1 1 12:36 ? 00:00:00 redis-server 192.168.126.162:7003 [cluster]
#192.168.126.161
[root@centosm redis_cluster]# ps -ef |grep redis
root 11906 1 0 23:07 ? 00:00:00 redis-server 192.168.126.161:7004 [cluster]
root 11911 1 0 23:07 ? 00:00:00 redis-server 192.168.126.161:7005 [cluster]
root 11913 1 0 23:07 ? 00:00:00 redis-server 192.168.126.161:7006 [cluster]
4.开始创始一个大
搭设一个大的话,如果redis版小于5.0就所需用作一个来透过redis-trib(脚本明文),这个来透过在redistar明文的源代码里。因为这个来透过是一个ruby脚本明文,所以这个来透过的运营所需ruby的运营状况,所以所需安装ruby
yum install ruby -y
yum install rubygems -y
gem install redis
局限性redis版极小5.0,所以不用ruby,可以直接创始。
redis-cli 便是cluster create 192.168.126.162:7001 192.168.126.162:7002 192.168.126.162:7003 192.168.126.161:7004 192.168.126.161:7005 192.168.126.161:7006 便是cluster-replicas 1
–cluster-replicas 1:都由从比例为1:1
[root@redis redis_cluster]# redis-cli 便是cluster create 192.168.126.162:7001 192.168.126.162:7002 192.168.126.162:7003 192.168.126.161:7004 192.168.126.161:7005 192.168.126.161:7006 便是cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes... #对6个链表透过校验圆孔位均等,确实均等三个都由链表亦可。
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.126.161:7006 to 192.168.126.162:7001 #三个都由链表7001 7004 7002
Adding replica 192.168.126.162:7003 to 192.168.126.161:7004 #三个从链表7006 7005 7003
Adding replica 192.168.126.161:7005 to 192.168.126.162:7002
M: fb89e991f2fca476964195f496428c0de3e57f76 192.168.126.162:7001
slots:[0-5460] (5461 slots) master
M: 54788eed17c99719f0d9e49b4933f8fc6e900cd9 192.168.126.162:7002
slots:[10923-16383] (5461 slots) master
S: 0d4d849e80a4f12e546fa3df7fce2cb65951b2 192.168.126.162:7003
replicates 4fbffafb9088e65f60526147f4bff5260ea897f0
M: 4fbffafb9088e65f60526147f4bff5260ea897f0 192.168.126.161:7004
slots:[5461-10922] (5462 slots) master
S: 6f44fa89577fd53ff8d703390e3908b7db5cb88c 192.168.126.161:7005
replicates 54788eed17c99719f0d9e49b4933f8fc6e900cd9
S: 3f224e631bffba6d3978412df83c11b9d53f5799 192.168.126.161:7006
replicates fb89e991f2fca476964195f496428c0de3e57f76
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 192.168.126.162:7001)
M: fb89e991f2fca476964195f496428c0de3e57f76 192.168.126.162:7001
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: 0d4d849e80a4f12e546fa3df7fce2cb65951b2 192.168.126.162:7003
slots: (0 slots) sle
replicates 4fbffafb9088e65f60526147f4bff5260ea897f0
M: 54788eed17c99719f0d9e49b4933f8fc6e900cd9 192.168.126.162:7002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 6f44fa89577fd53ff8d703390e3908b7db5cb88c 192.168.126.161:7005
slots: (0 slots) sle
replicates 54788eed17c99719f0d9e49b4933f8fc6e900cd9
S: 3f224e631bffba6d3978412df83c11b9d53f5799 192.168.126.161:7006
slots: (0 slots) sle
replicates fb89e991f2fca476964195f496428c0de3e57f76
M: 4fbffafb9088e65f60526147f4bff5260ea897f0 192.168.126.161:7004
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration. #所有链表表示同意均等hash圆孔
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered. #均等完毕,创始透过
先前一个大都由从对应当关系
可以看出都由从链表在两个链表随机均等,且一对对应当都由从服务项目不但会均等到同机器电脑程式上。即使机器电脑程式损坏,也不但会因素redis再次提供服务项目。
文章来源:Ja基基
推荐阅读:
ja共同开发Redis为基础篇之镜像和入侵者概念
Ja共同开发之如何相连Redis
ja共同开发技术之Redis一般来说习得入门篇
。初元重组蛋白药物企业
长期便秘是因为什么原因导致的
江中多维元素片
肝癌细胞免疫疗法费用
小儿肺热
先诺特韦片
片仔癀与克癀胶囊哪个效果好
二阳后吃什么药好得快
干眼症用什么眼药水有效果
-
26.27号求财来财,3大生肖坚持不懈无限光明,天天吃香喝辣
二十四节气熊 二十四节气熊的时光来科相天地人木相辅,其中50年生的科熊人,庚寅熊年,纳音为松柏木,称之为“木熊”,熬到3同年年初,有急于得到74年“水熊”报答,借助于“寅
- 2025-05-11往后15天,横财入账,3生肖贵子入家门,与下人结缘
- 2025-05-112022年3月初,富贵天下太平,财富如雨下的3大生肖
- 2025-05-113月下旬吉星入驻,翻身做有钱人,步步高升,得越过得越幸福的属相
- 2025-05-11往后15天,桃花运找上门,财路通畅日进斗金,吃穿不愁的生肖
- 2025-05-113月月底桃花朵朵开,横财当头,事业不断晋升,天天数钱忙的属相
- 2025-05-11农历二月下旬,吉星相助,财运爆棚,贵人登门,一夜间全实现的生肖
- 2025-05-1126.27号财运如彩虹,3大生肖专注顺风,有钱日子闲
- 2025-05-11往后15天,桃花盛开,求财顺利,日子我家的属相
- 2025-05-113月26.27号,3生肖财运少林足球,事业蒸蒸日上,福气傍身
- 2025-05-11除此以外的星象分析