zoukankan      html  css  js  c++  java
  • Redis集群生产环境源码安装

    安装redis集群  根据各人单位生产环境用户搭建
    一、安装环境
        操作系统:centos7.6
     关闭防火墙、关闭selinux
     redis1:192.168.26.128
     redis2:192.168.26.129
    二、用户环境
     groupadd usr
     useradd -g usr -md /usr/users/sw sw
     cd /usr/users/sw/
     mkdir  app;mkdir  backup
     cd app
     mkdir redis
     make /applog
     chown -R sw:usr /usr/users/sw
     chown -R sw:usr /applog
    三、系统参数修改,有几个系统参数需要调整,否则,在启动redis时会有几个WARNING:
     1.redis的配置文件中,默认的最大客户端连接数为10000,要求至少最大文件描述符要10032个,我 们一般系统都会设置为65535
      vim /etc/security/limits.conf添加以下内容
       *  soft   nproc  12000
       *  hard  nproc   12000
       *  soft   nofile  65535
       *  hard  nofile  65535
       *  hard  stack    10240    
       *  soft  stack    10240 
       *  hard  sigpending  127934
       *  soft  sigpending  127934
      vim /etc/security/limits.d/20-nproc.conf   修改
       *  soft   nproc  12000
     2.在/etc/sysctl.conf中加入 net.core.somaxconn=511 ,然后执行 sysctl ‐p 生效,解决默认设 置为一个较低的值128的警告。
     3. overcommit_memory 设置为0,在低内存环境下的后台保存可能失败。在文件 /etc/sysctl.conf 中添 加 vm.overcommit_memory = 1 ,然后重启或运行命令 sysctl vm.overcommit_memory=1
     4.如果服务器的"Transparent Huge Pages (THP)"支持在内核中启用了。这将在使用Redis时造成延迟和 内存使用问题。使用root运行命令
          echo never > /sys/kernel/mm/transparent_hugepage/enabled ,并且将它添加到你的/etc/rc.local中使在 重启后仍然保持生效来修复这个问题。在THP禁用之后Redis必须重启。
    四、安装GCC编译工具,不然会有编译不过的问题
        yum install gcc g++ gcc-c++ make -y
    五、下载、解压、编译安装
         su - sw
      cd backup
      wget http://download.redis.io/releases/redis-4.0.1.tar.gz
      tar -xvf redis-4.0.1.tar.gz
      cd redis-4.0.1
      make
      make PREFIX=/usr/users/sw/app/redis install
      编译完成,redis已经安装在/usr/users/sw/app/redis/bin下面,几个文件大致作用为
      redis‐benchmark:性能测试工具,测试Redis在你的系统及配置下的读写性能
      redis‐check‐aof:用于修复出问题的AOF文件
      redis‐check‐dump:用于修复出问题的dump.rdb文件
      redis‐cli:Redis命令行交互客户端
      redis‐sentinel:redis‐server别名
      redis‐server:Redis服务器启动程序
    六、redis的配置修改
        在源码目录中,将配置文件模板redis.conf复制到redis配置文件目录中app/redis/conf/,因为一个虚拟机要启动单个
     redis节点,所以配置文件要复制三份,分别用于用于规划的服务器端口号命名区别
     mkdir ~/app/redis/conf
     cp backup/redis-4.0.1/redis.conf ~/app/redis/conf/redis8601.conf
    七、编辑redis8601.conf文件
        1. 设置bind地址为本机IP,&&为本机IP,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
         bind 192.168.26.*
     2. 修改daemonize为yes,即以后台程序方式运行
      daemonize yes
     3. 修改服务端口
      port 8601
     4. 修改pid生成路径
      pidfile "/usr/uses/sw/app/redis/run/redis8601.pid"
         需要手动创建run目录存放pid路径
      mkdir /usr/users/sw/app/redis/run/
     5.  修改日志文件的位置
      logfile "/applog/redis8601/redis.log"
            需要手动创建日志目录
            mkdir /applog/redis8601/
        6. 修改工作目录,数据文件,append only文件等会在该目录生成
         dir "/applog/redisdump"
            需要手动创建该目录
            mkdir /applog/redisdump
     7.  数据文件名
      dbfilename "dump8601.rdb"
     8.  是否每次更新操作进行日志记录
         appendonly yes
      文件名设置
      appendfilename "appendonly8601.aof"
     9.  是否支持集群
      cluster-enabled yes
     10. 集群配置文件名
      cluster-config-file "nodes-8601.conf"
    八、复制redis8601.conf文件为另外两个节点修改
     1. cp redis8601.conf redis8602.conf
      cp redis8601.conf redis8603.conf
        2.统一替换配置文件redis8602.conf和redis8603.conf的8601为8602和8603
      sed -i 's/8601/8602/g' redis8602.conf
      sed -i 's/8601/8603/g' redis8603.conf
     3.要手动创建8602和8603的日志目录
      mkdir /applog/redis8602
      mkdir /applog/redis8603
    九、启动redis各节点服务
        1、cd ~/app/redis/bin
        ./redis-server ~/app/redis/conf/redis8601.conf
        ./redis-server ~/app/redis/conf/redis8602.conf
        ./redis-server ~/app/redis/conf/redis8603 .conf
    十、脚本启动
     mkdir ~/bin
     vim redis.sh
       #!/bin/bash
       case $1 in
         start)
          cd /usr/users/sw/app/redis/bin
          ./redis-server /usr/users/sw/app/redis/conf/redis8601.conf
          ./redis-server /usr/users/sw/app/redis/conf/redis8602.conf
          ./redis-server /usr/users/sw/app/redis/conf/redis8603.conf
          if [ "$?" -eq 0 ];then
            ps -ef|grep redis|grep -v grep
            echo "redis is started"
          else
            echo "redis is error"
            exit 10
          fi
         ;;
         stop)
           for pid in $(ps -ef|grep redis|grep -v "grep"|egrep -v "${0}"|awk -F " " '{print $2}'|uniq);do
             kill -9 $pid >> /dev/null 2>&1
           done
           #echo "redis is stopped"
         ;;
         restart)
           ${0} stop
           ${0} start
         ;;
       esac
     
    十一、集群搭建
        1.yum -y install ruby-devel  ruby-irb  ruby-libs ruby-rdoc ruby rubygems-devel rubygems
     2. 下载redis的gem并上传至服务器
      https://rubygems.org/downloads/redis-3.3.0.gem
      安装redis-gem
      gem install --local redis‐3.3.3.gem
      查看安装
      gem list redis
     3.使用 redis‐trib.rb 脚本创建集群 redis‐trib.rb 在redis的源码包的src目录中:
       cd ~/backup/redis-4.0.1/src/
    十二、 为redis各节点设置密码 为redis各节点设置密码,应用设置里也要设置redis的密码,如果密码不匹配,则应用无法连接上 redis。
         密码均设置为:111111   修改配置文件 直接修改配置文件的方法,需要修改完后重启redis服务。
     1.在每个节点的配置文件末尾加上: 然后重启所有节点的redis使密码生效即可。 masterauth "111111" requirepass "111111"
         vim redis8601.conf 添加
      masterauth "111111"
      requirepass "111111"
     2. 已设置了密码的节点创建集群,但此时创建集群,redis‐trib.rb脚本会提示无法连接到redis节点,这是因为ruby的redis gem中默认的客户 端连接密码为空,
        所以导致redis‐trib.rb脚本无法创建集群。 可以修改ruby的redis gem的默认redis客户端密码即可
      vi /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb 如果redis‐3.3.3.gem是使用非root安装的,则在用户主目录下搜索client.rb即可找到。
      使用root编辑redis gem 里的client.rb文件: 第15行为设置密码,默认为空: :password => "111111", 修改完后,再回去执行redis‐trib.rb即可连接上redis进行集群操作。
       vi /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb
            15       :password => "111111",  
     3.然后进行集群搭建
       ./redis-trib.rb create --replicas 1 192.168.26.128:8601 192.168.26.128:8602 192.168.26.128:8603 192.168.26.129:8601 192.168.26.129:8602 192.168.26.129:8603
        4.如果有报错[ERR] Node 192.168.26.129:8601 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
        删除各个节点下面的redis.log和dump下面的aof,rdb,conf文件
    十三、查看集群状态
         ./redis-trib.rb check 192.168.26.129:8602   
       
     
     
     
     
     
     
  • 相关阅读:
    挂载nfs网络共享目录到本地目录报错
    ubuntu18.04,centos7.7下安装nfs详细步骤
    linux的fstab配置文件
    nginx整合php后,浏览器访问.php文件报错
    centos中安装php7.3.13(目前最新版)
    skills_nginx
    problems_ubuntu
    problems_nginx
    docker中部署halo
    数论学习
  • 原文地址:https://www.cnblogs.com/lxc123/p/12005671.html
Copyright © 2011-2022 走看看