Redis安装以及主从复制详尽步骤,以及注意事项

Redis安装

1 编译和安装所需的包:

# yum install gcc tcl

2 解压Redis(此处须自行去官网下载Redis安装包,并上传到服务器)

# mkdir /home/App
# cd /home/App
# tar zxf redis-5.0.7.tar.gz 

3 进入Redis所在文件夹

# cd redis-5.0.7

4 编译安装Redis

# make
# make install PREFIX=/opt/redis/redis-5.0.7

5 安装完成后,可以看到/opt/redis/redis-5.0.7目录下有一个bin目录,bin目录里就是redis的命令脚本:

# cd /opt/redis/redis-5.0.7/bin
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  
redis-sentinel  redis-server

6 从redis源码里面复制一份配置文件 redis.conf

# mkdir /opt/redis/redis-5.0.7/conf
# cp /home/App/redis-5.0.7/redis.conf  /opt/redis/redis-5.0.7/conf/redis.conf 

7 把redis的命令脚本全部复制一份到 /usr/local/bin 环境变量下面

# cp /opt/redis/redis-5.0.7/bin/redis-*  /usr/local/bin

8 修改 redis.conf 文件改为后台守护进程

# vim /opt/redis/redis-5.0.7/conf/redis.conf 
     daemonize yes  # 改 no 为 yes

9 这是可以启动redis了

 # redis-server  /opt/redis/redis-5.0.7/conf/redis.conf

10 可以看到redis启动成功了

[root@localhost /]# redis-server  /opt/redis/redis-5.0.7/conf/redis.conf
5665:C 05 Jan 2020 20:42:09.047 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5665:C 05 Jan 2020 20:42:09.047 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=5665, just started
5665:C 05 Jan 2020 20:42:09.047 # Configuration loaded
[root@localhost /]# ps aux|grep redis
root       5666  0.0  0.7 153900  7592 ?        Ssl  20:42   0:00 redis-server 127.0.0.1:6379
root       5672  0.0  0.0 112712   960 pts/0    R+   20:42   0:00 grep --color=auto redis
[root@localhost /]# 

开机自启动

创建 redis.service 内容
# vim /etc/systemd/system/redis.service

代码内容

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
# 根据自己项目 和 配置conf文件 位置修改
ExecStart=/opt/redis/redis-5.0.7/bin/redis-server /opt/redis/redis-5.0.7/conf/redis.conf

PrivateTmp=true
[Install]
WantedBy=multi-user.target

重新加载服务文件

# systemctl daemon-reload 

加入开机自启

# systemctl enable redis.service

reboot 重启可以看到 linux 可以看到redis已经启动

Connecting to 192.168.172.31:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sun Jan  5 20:36:22 2020 from 192.168.172.1
[root@localhost ~]# ps aux|grep redis
root       1051  0.0  0.7 153900  7704 ?        Ssl  20:53   0:00 /opt/redis/redis-5.0.7/bin/redis-server 127.0.0.1:6379
root       1325  0.0  0.0 112712   960 pts/0    R+   20:55   0:00 grep --color=auto redis
[root@localhost ~]# 

主从复制

这里用的是2台服务器+单台多实例端口来实现redis主从复制的,1主3从

首先按上面方法搭建另外一台服务器的redis

主服务器:
master ip 192.168.172.11
port 6379
另一台 从服务器:
slave ip 192.168.172.21
port 6379

创建日志文件

 mkdir /opt/redis/redis-5.0.7/logs

192.168.172.11 redis.conf 文件修改

# 测试环境注释掉本地绑定IP,正式环境要绑定自己的服务器IP
# bind 127.0.0.1
port 6379
daemonize yes
pidfile "/opt/redis/redis-5.0.7/redis_6379.pid"
logfile "/opt/redis/redis-5.0.7/logs/redis_6379.log"
# master 应答密码 
requirepass "pwd@123" 
# slave  请求密码  考虑的哨兵集群 这里先添加上
masterauth "pwd@123"

maxclients 10000
maxmemory 256mb

maxmemory-policy volatile-lru

192.168.172.21 redis.conf 文件修改

# 测试环境注释掉本地绑定IP,正式环境要绑定自己的服务器IP
# bind 127.0.0.1
port 6379
daemonize yes
pidfile "/opt/redis/redis-5.0.7/redis_6379.pid"
logfile "/opt/redis/redis-5.0.7/logs/redis_6379.log"
# 绑定master IP 端口
replicaof 192.168.172.11 6379
# master 应答密码 
requirepass "pwd@123" 
# slave  请求密码  考虑的哨兵集群 这里先添加上
masterauth "pwd@123"
# 多个slave 的 replica-priority  最好不要设定成一样的 容易引起哨兵报错
replica-priority 101
maxclients 10000
maxmemory 256mb

maxmemory-policy volatile-lru

配置好文件后 检查主服务器 192.168.172.11 的6379端口是否开放,否则会导致从服务器连接不上

查看所有打开的端口: 
firewall-cmd --zone=public --list-ports

添加
firewall-cmd --zone=public --add-port=6379/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)

重新载入
firewall-cmd --reload
[root@localhost /]# firewall-cmd --query-port=6379/tcp
yes
[root@localhost /]# 

然后重启 redis服务

# systemctl restart redis

查看 master 配置情况 192.168.172.11

[root@localhost /]# redis-cli -a pwd@123 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.172.21,port=6379,state=online,offset=1358,lag=0
master_replid:eee4338de9fd2200fb5b50eae7c4c7302bd84911
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1358
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1358
[root@localhost /]# 

查看 slave 配置情况 192.168.172.21

[root@localhost ~]# redis-cli -a pwd@123 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:192.168.172.11
master_port:6379
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:1596
slave_priority:101
slave_read_only:1
connected_slaves:0
master_replid:eee4338de9fd2200fb5b50eae7c4c7302bd84911
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1596
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:953
repl_backlog_histlen:644
[root@localhost ~]# 

开启多个实例化 slave 服务
如图分别创建各个文件

 [root@localhost /]# tree /opt/redis/
/opt/redis/
├── redis-5.0.7
│   ├── bin
│   │   ├── redis-benchmark
│   │   ├── redis-check-aof
│   │   ├── redis-check-rdb
│   │   ├── redis-cli
│   │   ├── redis-sentinel -> redis-server
│   │   └── redis-server
│   ├── conf
│   │   ├── redis.conf
│   │   └── redis.conf~
│   ├── logs
│   │   └── redis_6379.log
│   └── redis_6379.pid
├── redis_6380
│   └── redis_6380.conf
└── redis_6381
    └── redis_6381.conf

6 directories, 12 files

复制一份 slave 服务器的redis.conf文件修改对应的端口号
修改对应的 如: port 6380

# 测试环境注释掉本地绑定IP,正式环境要绑定自己的服务器IP
# bind 127.0.0.1
port 6380
daemonize yes
pidfile "/opt/redis/redis_6380/redis_6380.pid"
logfile "/opt/redis/redis-5.0.7/logs/redis_6380.log"
# 绑定master IP 端口
replicaof 192.168.172.11 6379
# master 应答密码 
requirepass "pwd@123" 
# slave  请求密码  考虑的哨兵集群 这里先添加上
masterauth "pwd@123"
# 多个slave 的 replica-priority  最好不要设定成一样的 容易引起哨兵报错
replica-priority 102
maxclients 10000
maxmemory 256mb

maxmemory-policy volatile-lru

然后启动 6380的redis服务,

# redis-server /opt/redis/redis_6380/redis_6380.conf
# redis-server /opt/redis/redis_6381/redis_6381.conf

注意6380和6381端口是否开启

[root@localhost /]# ps aux|grep redis
root       1074  0.1  0.7 156456  7856 ?        Ssl  13:57   0:02 /opt/redis/redis-5.0.7/bin/redis-server *:6379
root       1640  0.0  0.7 153896  7724 ?        Ssl  14:32   0:00 redis-server *:6380
root       1646  0.0  0.7 156456  7864 ?        Ssl  14:33   0:00 redis-server *:6381
root       1652  0.0  0.0 112732   968 pts/0    S+   14:33   0:00 grep --color=auto redis
[root@localhost /]# 

查看 所有的 slave 已经加载上了

[root@localhost /]# redis-cli -a pwd@123 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:3
slave0:ip=192.168.172.21,port=6379,state=online,offset=3220,lag=0
slave1:ip=192.168.172.11,port=6381,state=online,offset=3220,lag=0
slave2:ip=192.168.172.11,port=6380,state=online,offset=3220,lag=0
master_replid:eee4338de9fd2200fb5b50eae7c4c7302bd84911
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3220
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3220
[root@localhost /]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值