当前位置:   article > 正文

Linux下配置Redis(主从复制)_linux中配置redis

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目录

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

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

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

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

(1)redis.service文件
vim /usr/lib/systemd/system/redis.service
  1. ##文件内容##
  2. [Unit]
  3. Description=Redis persistent key-value database
  4. After=network.target
  5. After=network-online.target
  6. Wants=network-online.target
  7. [Service]
  8. ExecStart=执行目录/redis-server Redis目录/redis.conf --supervised systemd #启动命令
  9. ExecStop=/usr/libexec/redis-shutdown #停止命令
  10. Type=forking
  11. User=用户名 #正常情况下是root用户,如果需要用其他用户启动则改为其他用户
  12. Group=组名 #跟上面同理,正常情况下是root
  13. RuntimeDirectory=redis
  14. RuntimeDirectoryMode=0755
  15. LimitNOFILE=65536 #限制文件和进程打开的数量,如不限制则设置为LimitNOFILE=unlimited
  16. PrivateTmp=true
  17. [Install]
  18. WantedBy=multi-user.target

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

  1. whereis redis-server
  2. find / -name redis.conf

(2) redis-shutdown 文件
  1. vim /usr/libexec/redis-shutdown
  2. chmod +x /usr/libexec/redis-shutdown
  1. ##文件内容##
  2. #!/bin/bash
  3. #
  4. # Wrapper to close properly redis and sentinel
  5. test x"$REDIS_DEBUG" != x && set -x
  6. REDIS_CLI=/usr/local/bin/redis-cli
  7. # Retrieve service name
  8. SERVICE_NAME="$1"
  9. if [ -z "$SERVICE_NAME" ]; then
  10. SERVICE_NAME=redis
  11. fi
  12. # Get the proper config file based on service name
  13. CONFIG_FILE="Redis目录/$SERVICE_NAME.conf"
  14. # Use awk to retrieve host, port from config file
  15. HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE | tail -n1`
  16. PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE | tail -n1`
  17. PASS=`awk '/^[[:blank:]]*requirepass/ { print $2 }' $CONFIG_FILE | tail -n1`
  18. SOCK=`awk '/^[[:blank:]]*unixsocket\s/ { print $2 }' $CONFIG_FILE | tail -n1`
  19. # Just in case, use default host, port
  20. HOST=${HOST:-127.0.0.1}
  21. if [ "$SERVICE_NAME" = redis ]; then
  22. PORT=${PORT:-6379}
  23. else
  24. PORT=${PORT:-26739}
  25. fi
  26. # Setup additional parameters
  27. # e.g password-protected redis instances
  28. [ -z "$PASS" ] || ADDITIONAL_PARAMS="-a $PASS"
  29. # shutdown the service properly
  30. if [ -e "$SOCK" ] ; then
  31. $REDIS_CLI -s $SOCK $ADDITIONAL_PARAMS shutdown
  32. else
  33. $REDIS_CLI -h $HOST -p $PORT $ADDITIONAL_PARAMS shutdown
  34. fi

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

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

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

(1)master
  1. ##找到并修改、增加以下内容
  2. bind 0.0.0.0 #监听IP,有多个IP用逗号隔开
  3. daemonize yes
  4. logfile "/var/log/redis_6379.log"
  5. save 900 1
  6. save 300 10
  7. save 60 10000
  8. dir 数据目录 #自定义数据目录
  9. masterauth 密码
  10. requirepass 密码 # masterauth与requirepass的密码可以设置一样
(2)slave - 1
  1. ##找到并修改、增加以下内容
  2. bind 0.0.0.0 #监听IP,有多个IP用逗号隔开
  3. daemonize yes
  4. logfile "/var/log/redis_6379.log"
  5. save 900 1
  6. save 300 10
  7. save 60 10000
  8. dir 数据目录 #自定义数据目录
  9. masterauth 密码
  10. requirepass 密码 # masterauth与requirepass的密码可以设置一样
  11. slaveof master的IP master的端口号 #端口号一般情况下是6379

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

 5. 启动服务并测试

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

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

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

  1. ##在slave机上查看数据
  2. redis-cli -h 本机IP -a 密码
  3. get xxx 查看数据
  4. ##插入数据失败(正常)
  5. set xxx

部署完成 !!

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/547375
推荐阅读
相关标签
  

闽ICP备14008679号