Loading

Redis6主从复用

新建目录,解压redis目录,编译make

[root@rzk opt]# mkdir -p redis/data
[root@rzk opt]# mkdir -p redis/log
[root@rzk opt]# mkdir -p redis/conf
[root@rzk opt]# ll
total 2408
drwxr-xr-x 5 root root      41 Jul 29 22:05 redis
-rw-r--r-- 1 root root 2465302 Jul 29 21:57 redis-6.2.5.tar.gz
[root@rzk opt]# cd redis/
[root@rzk redis]# ls
conf  data  log
[root@rzk redis]# cd ..
[root@rzk opt]# tar -zxvf redis-6.2.5.tar.gz 
[root@rzk redis-6.2.5]# make
[root@rzk redis-6.2.5]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  src    TLS.md
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  sentinel.conf     tests  utils
[root@rzk redis-6.2.5]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  src    TLS.md
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  sentinel.conf     tests  utils
[root@rzk redis-6.2.5]# mkdir -p /usr/local/redis
[root@rzk redis-6.2.5]# make PREFIX=/usr/local/redis/install
cd src && make all
make[1]: Entering directory '/opt/redis-6.2.5/src'

Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory '/opt/redis-6.2.5/src'
[root@rzk redis-6.2.5]# make PREFIX=/usr/local/redis/ install  指定目录进行安装
cd src && make install
make[1]: Entering directory '/opt/redis-6.2.5/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL redis-server
    INSTALL redis-benchmark
    INSTALL redis-cli
make[1]: Leaving directory '/opt/redis-6.2.5/src'
[root@rzk redis-6.2.5]# 
[root@rzk redis]# cd /usr/local/redis/
[root@rzk redis]# ls
bin
[root@rzk redis]# cd bin/
[root@rzk bin]# ls
redis-benchmark  redis-check-aof  redis-check-rdb ** redis-cli**  redis-sentinel  redis-server

```

# 因为要配置三个redis  复制一个公用的配置到redis/conf里面
```java
[root@rzk opt]# cd redis-6.2.5/
[root@rzk redis-6.2.5]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  src    TLS.md
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  sentinel.conf     tests  utils
[root@rzk redis-6.2.5]# cp redis.conf /opt/redis
redis/              redis-6.2.5/        redis-6.2.5.tar.gz  
[root@rzk redis-6.2.5]# cp redis.conf /opt/redis
redis/              redis-6.2.5/        redis-6.2.5.tar.gz  
[root@rzk redis-6.2.5]# cp redis.conf /opt/redis/conf/
[root@rzk redis-6.2.5]# cd /opt/redis/conf/
[root@rzk conf]# ls
redis.conf
[root@rzk conf]# mv redis.conf redis-common.conf 
[root@rzk conf]# ll
total 92
-rw-r--r-- 1 root root 93724 Jul 30 00:50 redis-common.conf

```

## 修改配置文件
> 配置好保存退出

```java
76 # bind 127.0.0.1 -::1  注释掉
95 protected-mode no  保护模式关闭
99 # port 6379           端口号注释掉
258 daemonize yes       开启后台启动
290 # pidfile /var/run/redis_6379.pid   进程文件注释掉  因为每个redis都有一个进程文件,公用就不开启
303 # logfile ""        注释掉日志

382  save 3600 1    开启rdb
383  save 300 100
384  save 60 10000

432 # dbfilename dump.rdb 注释掉
455 dir /opt/redis/data   修改文件存储位置
485 # masterauth <密码>   从节点访问主节点需要一个密码
902  requirepass <密码>    主服务器登录访问密码

```
# 新建redis进程的配置文件
```
[root@rzk conf]# touch redis-6381.conf
[root@rzk conf]# touch redis-6382.conf
[root@rzk conf]# touch redis-6383.conf
[root@rzk conf]# vim redis-6381.conf 
```

> 内容如下
> redis6381
```java
# 引用公共配置
include /opt/redis/conf/redis-common.conf
# 进程编号记录文件
pidfile /var/run/redis-6381.pid
# 进程端口号
port 6381
# 日志记录文件
logfile "/opt/redis/log/redis-6381.log"
# 数据记录文件
dbfilename dump-6379.rdb
# 追加文件名称
appendfilename "appendonly-6381.aof"
# 下面的配置无需在6381里配置
# 备份服务器从属于6381推荐配置局域网ip
# replicaof  6383  # 服务器需要配置内网地址 连接用外网连接
```

> redis6382

```java
# 引用公共配置
include /opt/redis/conf/redis-common.conf
# 进程编号记录文件
pidfile /var/run/redis-6382.pid
# 进程端口号
port 6382
# 日志记录文件
logfile "/opt/redis/log/redis-6382.log"
# 数据记录文件
dbfilename dump-6382.rdb
# 追加文件名称
appendfilename "appendonly-6382.aof"
# 下面的配置无需在6382里配置
# 备份服务器从属于6381推荐配置局域网ip
replicaof ip地址 6381
# 服务器需要配置内网地址 连接用外网连接

redis6383


# 引用公共配置
include /opt/redis/conf/redis-common.conf
# 进程编号记录文件
pidfile /var/run/redis-6383.pid
# 进程端口号
port 6383
# 日志记录文件
logfile "/opt/redis/log/redis-6383.log"
# 数据记录文件
dbfilename dump-6383.rdb
# 追加文件名称
appendfilename "appendonly-6383.aof"
# 下面的配置无需在6383里配置
# 备份服务器从属于6383推荐配置局域网ip
replicaof ip地址 6381
# 服务器需要配置内网地址 连接用外网连接

启动三个redis服务

[root@rzk bin]# ./redis-server /opt/redis/conf/redis-6381.conf 
[root@rzk bin]# ./redis-server /opt/redis/conf/redis-6382.conf 
[root@rzk bin]# ./redis-server /opt/redis/conf/redis-6383.conf 
[root@rzk bin]# ps -ef | grep redis
root        7230       1  0 01:42 ?        00:00:00 ./redis-server *:6381
root        7236       1  0 01:42 ?        00:00:00 ./redis-server *:6382
root        7242       1  0 01:42 ?        00:00:00 ./redis-server *:6383
root        7248    1918  0 01:42 pts/0    00:00:00 grep --color=auto redis

测试有没有连接成功上主从

多开几个shell窗口进行测试 查看主机

[root@rzk bin]# ./redis-cli -p 6381 -a 密码
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6381> info replication
# Replication
role:master   **扮演的角色 主**
connected_slaves:2
slave0:ip=,port=6382,state=online,offset=56,lag=0
slave1:ip=,port=6383,state=online,offset=56,lag=0
master_failover_state:no-failover
master_replid:8285ff3950c3cff01276fc2c6c28d9ea58462
master_replid2:00000000000000000000000000000000000000
master_repl_offset:56
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:56

从机

[root@rzk ~]# cd /usr/local/redis/
[root@rzk redis]# cd bin/    
[root@rzk bin]# ./redis-cli -p 6382
127.0.0.1:6382> get a
(error) NOAUTH Authentication required.
127.0.0.1:6382> auth 
(error) WRONGPASS invalid username-password pair or user is disabled.
127.0.0.1:6382> auth 密码
OK
127.0.0.1:6382> info replication
# Replication
role:slave  **扮演的角色 从**
master_host:IP地址
master_port:6381
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:1
master_link_down_since_seconds:-1
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:4e7fa9c52fa833d2ac0b2fc8e6fd90626
master_replid2:00000000000000000000000000000000000000
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

从机

127.0.0.1:6383> info replication
# Replication
role:slave     **扮演的角色 从**
master_host:IP地址
master_port:6381
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:42
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:8285ff3950c3cff01276fc2c6c28d9ea58462edf
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
posted @ 2021-07-30 01:55  Rzk  阅读(109)  评论(0编辑  收藏  举报