Linux下配置Redis(主从复制)

IP地址系统版本redis版本
maste192.168.10.11Centos 7.8redis-7.0.0
slave-1192.168.10.12
slave-2192.168.10.13

1. 下载安装包并解压(所有节点下载链接。这里把解压完的目录称为Redis目录

cd 目录名    #这一步可跳过
wget https://download.redis.io/releases/redis-7.0.0.tar.gz
tar -xf redis-7.0.0.tar.gz

2.  编译安装Redis(所有节点)。这里把 /usr/local/bin 称为执行目录

yum  install -y  gcc-c++     #安装编译需要的环境
cd   Redis目录               #不知道是哪个目录看第1步
make && make install        #安装后的执行文件放在/usr/local/bin

3.  生成配置文件(所有节点

(1)redis.service文件
vim /usr/lib/systemd/system/redis.service
##文件内容##

[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=执行目录/redis-server  Redis目录/redis.conf --supervised systemd  #启动命令
ExecStop=/usr/libexec/redis-shutdown   #停止命令
Type=forking
User=用户名           #正常情况下是root用户,如果需要用其他用户启动则改为其他用户
Group=组名            #跟上面同理,正常情况下是root
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=65536     #限制文件和进程打开的数量,如不限制则设置为LimitNOFILE=unlimited
PrivateTmp=true


[Install]
WantedBy=multi-user.target

           ###注意###
          文件中的ExecStart需要的参数不知道的话可以用下面的命令查找 

whereis redis-server
find / -name redis.conf

(2) redis-shutdown 文件
vim /usr/libexec/redis-shutdown
chmod +x /usr/libexec/redis-shutdown
##文件内容##

#!/bin/bash
#
# Wrapper to close properly redis and sentinel
test x"$REDIS_DEBUG" != x && set -x

REDIS_CLI=/usr/local/bin/redis-cli

# Retrieve service name
SERVICE_NAME="$1"
if [ -z "$SERVICE_NAME" ]; then
   SERVICE_NAME=redis
fi

# Get the proper config file based on service name
CONFIG_FILE="Redis目录/$SERVICE_NAME.conf"

# Use awk to retrieve host, port from config file
HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE | tail -n1`
PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE | tail -n1`
PASS=`awk '/^[[:blank:]]*requirepass/ { print $2 }' $CONFIG_FILE | tail -n1`
SOCK=`awk '/^[[:blank:]]*unixsocket\s/ { print $2 }' $CONFIG_FILE | tail -n1`

# Just in case, use default host, port
HOST=${HOST:-127.0.0.1}
if [ "$SERVICE_NAME" = redis ]; then
    PORT=${PORT:-6379}
else
    PORT=${PORT:-26739}
fi

# Setup additional parameters
# e.g password-protected redis instances
[ -z "$PASS"  ] || ADDITIONAL_PARAMS="-a $PASS"

# shutdown the service properly
if [ -e "$SOCK" ] ; then
        $REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown
else
        $REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown
fi

(3)配置完重新加载服务(所有节点
systemctl daemon-reload

4. 修改配置文件(所有节点)。需要创建数据目录

echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf && sysctl -p   #所有节点
mkdir 目录                  # 创建数据目录
vim Redis目录/redis.conf    # 所有节点都需要修改文件。
systemctl daemon-reload     # 修改配置后重新加载服务

(1)master
##找到并修改、增加以下内容

bind 0.0.0.0         #监听IP,有多个IP用逗号隔开
daemonize yes
logfile "/var/log/redis_6379.log"
save 900 1
save 300 10
save 60 10000
dir   数据目录        #自定义数据目录
masterauth    密码
requirepass   密码    # masterauth与requirepass的密码可以设置一样
(2)slave - 1
##找到并修改、增加以下内容

bind 0.0.0.0         #监听IP,有多个IP用逗号隔开
daemonize yes
logfile "/var/log/redis_6379.log"
save 900 1
save 300 10
save 60 10000
dir   数据目录        #自定义数据目录
masterauth    密码
requirepass   密码    # masterauth与requirepass的密码可以设置一样
slaveof master的IP  master的端口号       #端口号一般情况下是6379

(3)slave - 2
### slave-2配置同slave-1基本一样
### 具体看上一步

 5. 启动服务并测试

(1)服务启停
systemctl start redis
systemctl restart redis
systemctl stop redis
systemctl status redis
(2)查看主从信息
redis-cli -h 本机IP -a 密码 info replication    #在master机上操作

redis-cli -h 本机IP -a 密码 info replication    #在slave机上操作

(3)测试成功
##在master机上插入数据
redis-cli -h master的IP
auth 密码
set xx xxx

##在slave机上查看数据
redis-cli -h 本机IP -a 密码
get  xxx         查看数据


##插入数据失败(正常)
set xxx

部署完成 !!

 

 

 

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两拆

谢谢你的观看和喜欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值