redis主从结构 (一主一从,一主多从,主从从)

关闭防火墙和selinux

systemctl disable firewalld.service
systemctl stop firewalld 

vim /etc/selinux/config
sed -n '7p' /etc/selinux/config
SELINUX=disabled
setenforce 0

从服务器首次做的是全量同步,且同步的数据会覆盖本机的数据

master        192.168.44.140        [root@z1 ~]#

slave           192.168.44.141        [root@z2 ~]#
1,在master节点z1和slave节点z2编译安装redis

tar xf redis-4.0.8.tar.gz
cd redis-4.0.8/
yum -y install make gcc
make && make install

初始化配置 (选项回车保持默认)

[root@z1 redis-4.0.8]# ./utils/install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

 初始化完成后redis自动启动

[root@z1 redis-4.0.8]# ss -utnlp | grep redis
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=4910,fd=6))
 [root@z2 redis-4.0.8]# ss -utnlp | grep redis
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=14578,fd=6))

 2,配置一主一从       

redis默认均为主的身份

主从结构的从服务器不允许执行存储数据的操作,只能读数据

运行的redis服务 必须使用本机的 物理网卡口的地址 接收连接请求 (使用默认的lo 地址无法彼此之间建立连接

 2.1,修改配置文件,添加本机物理网卡接收请求,重启服务生效

修改配置文件

[root@z1 redis-4.0.8]# vim /etc/redis/6379.conf
[root@z1 redis-4.0.8]# sed -n '70p' /etc/redis/6379.conf
bind 127.0.0.1 192.168.44.140

 

 重启查看

[root@z1 redis-4.0.8]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@z1 redis-4.0.8]# ss -utnlp | grep redis
[root@z1 redis-4.0.8]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@z1 redis-4.0.8]# ss -utnlp | grep redis
tcp    LISTEN     0      128    192.168.44.140:6379                  *:*                   users:(("redis-server",pid=5169,fd=7))
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=5169,fd=6))
 [root@z2 redis-4.0.8]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@z2 redis-4.0.8]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@z2 redis-4.0.8]# ss -utnlp | grep redis
tcp    LISTEN     0      128    192.168.44.141:6379                  *:*                   users:(("redis-server",pid=14798,fd=7))
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=14798,fd=6))

 2.2,连接服务器查看状态

两个服务器均为默认身份        主master        role:master

两个服务器的从服务器均为0       connected_slaves:0  

[root@z1 redis-4.0.8]# redis-cli -h 192.168.44.140 -p 6379
192.168.44.140:6379> ping
PONG
192.168.44.140:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:c8aae9e06288dee5f6f1ebb209fd3c8496290c31
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
192.168.44.140:6379>
 [root@z2 redis-4.0.8]# redis-cli -h 192.168.44.141 -p 6379
192.168.44.141:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:c305720d6bdfd64c85a1f49afa1d6b3d95131ac8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
192.168.44.141:6379>

 2.3,配置主从。

把192.168.44.141        [root@z2 ~]#        设置为192.168.44.140        [root@z1 ~]#的从服务器

在192.168.44.141        [root@z2 ~]#        配置         指定主服务器的IP和端口

192.168.44.141:6379> slaveof 192.168.44.140 6379
OK
192.168.44.141:6379> info replication
# Replication
role:slave
master_host:192.168.44.140
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:210
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:2adfaaeda40d88b94262c096cdcd3962396530ce
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:210
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:210

 在192.168.44.140        [root@z1 ~]#服务器查看状态

[root@z1 redis-4.0.8]# redis-cli -h 192.168.44.140 -p 6379
192.168.44.140:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.44.141,port=6379,state=online,offset=728,lag=1
master_replid:2adfaaeda40d88b94262c096cdcd3962396530ce
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:728
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:728

3,验证一主一从

连接主服务器存储数据

连接从服务器查询数据

[root@z1 redis-4.0.8]# redis-cli -h 192.168.44.140 -p 6379
192.168.44.140:6379> keys *
(empty list or set)
192.168.44.140:6379> mset a 1 b 2 c 3 d 4
OK
192.168.44.140:6379> keys *
1) "d"
2) "b"
3) "a"
4) "c"
192.168.44.140:6379> mget a b c d
1) "1"
2) "2"
3) "3"
4) "4"
192.168.44.140:6379>
[root@z2 redis-4.0.8]# redis-cli -h 192.168.44.141 -p 6379
192.168.44.141:6379> keys *
1) "d"
2) "b"
3) "c"
4) "a"
192.168.44.141:6379> mget a b c d
1) "1"
2) "2"
3) "3"
4) "4"
192.168.44.141:6379>

你可能感兴趣的:(数据库,redis,java)