Fork me on GitHub

Redis一主二从+哨兵模式

Centos7.4 系统 root用户 全新系统搭建redis一主两从 + 哨兵模式

环境介绍

主库:192.168.187.3:6379
从库:192.168.187.135:6379 192.168.187.135:6380
下载redis最新的源码包
http://www.redis.cn/download.html 我下载的是redis-3.2.9.tar.gz

##安装gcc编译软件
[root@redis-m redis-3.2.9]# yum -y install gcc gcc-c++ kernel-devel
如果内网用户请自行百度安装方法。

安装

下载,解压,编译:

1
2
3
4
5
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
$ make install

安装在 ./redis-4.0.9/src 目录下

修改配置文件

主redis配置文件修改:

1
2
3
bind 192.168.187.3 (当前redis的ip)
port 6379
daemonize yes(守护进程)

从redis配置文件修改:

1
2
3
4
5
6
bind 192.168.187.135 (改为当前redis的ip)
port 6379(端口号)
daemonize yes(守护进程)
pidfile "/var/run/redis_6379.pid"(进程的目录)
slaveof 192.168.187.3 6379(设置此redis为slave,支出master的ip和port)
slave-read-only yes(只读)

从redis配置文件修改:

1
2
3
4
5
6
bind 192.168.187.135 (改为当前redis的ip)
port 6380(端口号)
daemonize yes(守护进程)
pidfile "/var/run/redis_6380.pid"(进程的目录)
slaveof 192.168.187.3 6379(设置此redis为slave,支出master的ip和port)
slave-read-only yes(只读)

完成一主两从的redis集群,主要用于 主库写入,从库读取 的 读写分离

验证方法:

从库查看命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
./src/redis-cli -h 192.168.187.135 -p 6379
192.168.187.135:6379> info
# Server
redis_version:4.0.9
redis_git_sha1:00000000
…省略…
# Replication
role:slave
master_host:192.168.187.3
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:0
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:a4fd0f81f963e653a324fe5fbad7e9c7ba665a4b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0

# CPU
used_cpu_sys:0.48
used_cpu_user:0.10
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Cluster
cluster_enabled:0

# Keyspace
192.168.187.135:6379>
192.168.187.135:6379>
192.168.187.135:6379>
192.168.187.135:6379> get test
"123456"
192.168.187.135:6379>

主库查看命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
./src/redis-cli -h 192.168.187.3 -p 6379
192.168.187.3:6379> info
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.187.135,port=6379,state=online,offset=42,lag=1
slave1:ip=192.168.187.135,port=6380,state=online,offset=42,lag=1
master_replid:a4fd0f81f963e653a324fe5fbad7e9c7ba665a4b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:42
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:42

验证二:

此时主库set 一个值,可以去从库查询

1
2
3
4
5
6
	./src/redis-cli -h 192.168.187.3 -p 6379
192.168.187.3:6379> set test 123456

./src/redis-cli -h 192.168.187.135 -p 6379
192.168.187.135:6379> get test
"123456"

安装哨兵模式

所谓哨兵模式就是 从redis 一直监控主库的运行状况,当主库down掉是,从库会重新选择一个从库升级为主库的方式。

哨兵模式中 主库不需要修改配置

从库修改配置文件:vi sentinel.conf
sentinel monitor mymaster 192.168,187.3 6379 2

重启redis后生效。

------本文结束 感谢阅读------
鲁顺德 wechat
欢迎您扫一扫上面的微信公众号,订阅我的分享资源!
坚持原创技术分享,您的支持将鼓励我继续创作!