Redis 搭建高可用集群
创始人
2024-01-30 16:10:37

729161092ab248a6aea2b17986050e60.jpg、单个redis服务搭建请参考:redis服务搭建

 

 

2、在/usr/local下创建目录redis-cluster,并在redis-cluster下创建 6379、6380、6381目录以及data、temp目录

 

# cd /usr/local

# mkdir redis-cluster

--其他文件创建类似,此处不一一写出

3、复制安装后的redis的配置文件(我的在/etc/目录下)的redis.conf 和 sentinel.conf文件到 6379、6380、6381目录中.

 

# cp /etc/redis.conf /usr/local/redis-cluster/6379

# cp /etc/redis-sentinel.conf /usr/local/redis-cluster/6379

--6380和6379类似,此处不一一写出

4、主从配置,修改 redis.conf文件 

 

主redis 6379目录:

 

复制代码

protected-mode yes

port 6379

daemonize yes

pidfile /var/run/redis_6379.pid

logfile /var/log/redis/redis_6379.log

dir /usr/local/redis-cluster/6379/data

slave-read-only yes

requirepass foo(设置访问登录密码)

#从服务设置了密码需要加上 

masterauth foo 

复制代码

从slave1 6380:

 

复制代码

protected-mode yes

port 6380

daemonize yes

pidfile /var/run/redis_6380.pid

logfile /var/log/redis/redis_6380.log

dir /usr/local/redis-cluster/6380/data 

slaveof 127.0.0.1 6379 

#若主服务设置了密码需要加上 

masterauth foo 

#从服务密码设置 

requirepass foo

复制代码

从slave2 6381:

 

复制代码

protected-mode yes

port 6381

daemonize yes

pidfile /var/run/redis_6381.pid

logfile /var/log/redis/redis_6381.log

dir /usr/local/redis-cluster/6381/data 

slaveof 127.0.0.1 6379 

#若主服务设置了密码需要加上,在设置哨兵时主从之间连接需要

masterauth foo 

#从服务密码设置 

requirepass foo

复制代码

master既可以读,也可以写,而 从服务器是只可以读,不可写的.

 

5、哨兵配置.

 

主redis 6379 sentinel.conf

 

protected-mode no

port 26379

dir "/usr/local/redis-cluster/6379/temp"

sentinel monitor redis1 127.0.0.1 6379 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

其中redis1可自定义

 

从slave1 6380 centinel.conf

 

protected-mode no

port 26380

dir "/usr/local/redis-cluster/6380/temp"

sentinel monitor redis1 127.0.0.1 6379 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

从slave2 7003 sentinel.conf

 

protected-mode no

port 26381

dir "/home/redis/redis-cluster/6381/temp"

sentinel monitor redis1 127.0.0.1 6381 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

哨兵配置完成.

 

6、启动

 

启动redis

分别到6379、6380、6381的目录下执行启动命令:

 

redis-server ./redis.conf 

 

启动哨兵

 

redis-server ./sentinel.conf 

 

7、查看主从信息:

 

复制代码

127.0.0.1:6379> info replication

# Replication

role:master

connected_slaves:2

slave0:ip=127.0.0.1,port=6380,state=online,offset=420,lag=1

slave1:ip=127.0.0.1,port=6381,state=online,offset=420,lag=1

master_repl_offset:434

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:433

复制代码

 

 

复制代码

127.0.0.1:6380> info replication

# Replication

role:slave

master_host:127.0.0.1

master_port:6379

master_link_status:up

master_last_io_seconds_ago:1

master_sync_in_progress:0

slave_repl_offset:168

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

复制代码

 

 

复制代码

127.0.0.1:6381> info replication

# Replication

role:slave

master_host:127.0.0.1

master_port:6379

master_link_status:up

master_last_io_seconds_ago:9

master_sync_in_progress:0

slave_repl_offset:406

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

复制代码

 

 

8、验证

 

127.0.0.1:6379> set test 123

OK

 

 

127.0.0.1:6380> get test

"123"

127.0.0.1:6380> set hh 6380

(error) READONLY You can't write against a read only slave.

 

 

127.0.0.1:6381> get test

"123"

127.0.0.1:6381> set xx 6381

(error) READONLY You can't write against a read only slave.

 

 

此时,我们可以把主服务或者从服务停掉进行测试来看看效果

 

停掉主服务6379:

 

复制代码

[root@VM_0_15_centos 6379]# ps -ef |grep redis

root 10690 30720 0 18:24 pts/4 00:00:00 tailf -n 200 /var/log/redis/sentinel.log

root 15650 1 0 19:01 ? 00:00:01 redis-sentinel *:26379 [sentinel]

root 16404 1 0 19:06 ? 00:00:00 redis-sentinel *:26381 [sentinel]

root 16565 1 0 19:07 ? 00:00:00 redis-sentinel *:26380 [sentinel]

root 17248 28933 0 19:12 pts/0 00:00:00 grep --color=auto redis

root 31060 1 0 16:55 ? 00:00:06 redis-server *:6379

root 31488 1 0 16:58 ? 00:00:06 redis-server *:6380

root 31563 29043 0 16:58 pts/1 00:00:00 redis-cli -c -p 6380 -a foo

root 31952 1 0 17:01 ? 00:00:06 redis-server *:6381

root 32057 29125 0 17:02 pts/2 00:00:00 redis-cli -c -p 6381 -a foo

[root@VM_0_15_centos 6379]# kill 31060

复制代码

sentinel日志:

复制代码

15650:X 18 Dec 19:13:44.834 # +sdown master mymaster 127.0.0.1 6379

16565:X 18 Dec 19:13:44.852 # +sdown master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.861 # +sdown master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.920 # +odown master mymaster 127.0.0.1 6379 #quorum 3/2

16404:X 18 Dec 19:13:44.920 # +new-epoch 1

16404:X 18 Dec 19:13:44.920 # +try-failover master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.927 # +vote-for-leader 6d5a34396cd5912cbfe1134a70cd3e14338ebf24 1

15650:X 18 Dec 19:13:44.934 # +new-epoch 1

16565:X 18 Dec 19:13:44.934 # +new-epoch 1

16565:X 18 Dec 19:13:44.940 # +vote-for-leader

 

相关内容

热门资讯

长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
1秒多少毫秒 1秒等于多少毫秒... 长度单位换算1丈=10尺;1尺=10寸;1寸=10分;1分=10厘;1丈≈3.33米;1尺≈3.33...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
中国电信人工电话多少 中国电信... 当我们在使用中国移动、中国电信和中国联通提供的电信业务时,可能会发生争议。建议直接向服务提供商投诉,...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...