当前位置:首页 >> 中医美容 >> ja开发方Redis之sentinel和集群

ja开发方Redis之sentinel和集群

发布时间:2024-12-16

log 2>Simon1 Simon

[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一般来说习得入门篇

初元
重组蛋白药物企业
长期便秘是因为什么原因导致的
江中多维元素片
肝癌细胞免疫疗法费用
小儿肺热
先诺特韦片
片仔癀与克癀胶囊哪个效果好
二阳后吃什么药好得快
干眼症用什么眼药水有效果
标签:开发方
友情链接: