zoukankan      html  css  js  c++  java
  • centos7下Redis-Sentinel安装和配置

    一、Redis的安装

      1、从官网https://redis.io/download下载最新的stable版本(也可以下载unstable版本)redis-4.0.9.tar.gz。

      2、上传到CentOS 7服务器的 /data/目录

      3、解压缩文件到 /data/redis-4.0.9目录下

    > cd /data
    > tar -zxvf redis-4.0.9.tar.gz -C /data/redis-4.0.9

      4、在centOs上安装编译必要的软件(根据自己机器情况,如果已有请忽略)

    # yum install gcc gcc-c++
    # yum -y install automake autoconf libtool

      5、开始编译Redis

    # make

      编译过程中可能会出现这个错误,因为默认分配器是jemalloc,我机器没有,具体可以自行度娘 。。。。。

     解决办法之一就是修改默认分配器(我使用的办法)

    # make MALLOC=libc  //改为libc

    没什么意外稍等一下就编译通过了

    等等,我还遇到了一个问题,截图如下

    因为一个文件没有执行权限,解决办法很简单

    chmod 777 mkreleasehdr.sh

    再次执行make命令 “# make MALLOC=libc” , 应该就没啥问题了

    不过编译最后出现了一句话

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

    什么意思呢? 执行下make test 是个好主意

    我真的执行了,结果如下

    [root@vm82220 redis-4.0.9]# make test
    cd src && make test
    make[1]: Entering directory `/data/redis-4.0.9/redis-4.0.9/src'
    /bin/sh: ./runtest: Permission denied
    make[1]: *** [test] Error 126
    make[1]: Leaving directory `/data/redis-4.0.9/redis-4.0.9/src'
    make: *** [test] Error 2

    继续添加权限  “chmod 777 runtest” ,再次执行 make test, 又出问题了

    [root@vm82220 redis-4.0.9]# make test
    cd src && make test
    make[1]: Entering directory `/data/redis-4.0.9/redis-4.0.9/src'
    You need tcl 8.5 or newer in order to run the Redis test
    make[1]: *** [test] Error 1
    make[1]: Leaving directory `/data/redis-4.0.9/redis-4.0.9/src'
    make: *** [test] Error 2

    看到红字了吧,需要8.5以上的版本

    安装tcl

    # yum install tcl

    再make test  就没什么问题了

      6、安装Redis到指定地方

    本人喜欢把常用服务放到喜欢地方,这次就放到/data/redis目录下吧

    # mkdir /data/redis

    执行安装命令

    # make PREFIX=/data/redis/ install

    其实/data/redis 下只有一个bin目录,里面有几个命令文件

     为了后续方面使用命令,可以把bin文件夹放到环境变量中,也可以把这几个命令连接到/usr/local/bin中,我采用后者

    //软连接一定要是有全路径哦,否则可能出现错误
    # ln -s /data/redis/bin/redis-server /usr/local/bin/redis-server
    # ln -s /data/redis/bin/redis-server /usr/local/bin/redis-sentinel
    # ln -s /data/redis/bin/redis-benchmark^Cusr/local/bin/redis-sentinel
    # ln -s /data/redis/bin/redis-benchmark /usr/local/bin/redis-benchmark
    # ln -s /data/redis/bin/redis-check-aof /usr/local/bin/redis-check-aof
    # ln -s /data/redis/bin/redis-check-rdb /usr/local/bin/redis-check-rdb

    至此,安装就完成了

    二、Redis配置

       1、打开端口:6379 , Redis默认端口就是6379,可以在配置文件中修改

    firewall-cmd --permanent --zone=public --add-port=6379/tcp
    firewall-cmd --reload

       2、修改配置文件

    把配置文件/data/redis-4.0.9/redis.conf复制到/data/redis/conf文件夹中,修改配置

    protected-mode no   //打开其他机器连接
    port 6379    //端口
    daemonize yes  //启用守护进程
    pidfile /data/redis/run/redis_6379.pid  //运行时
    logfile /data/redis/log/redis_6379.log  //日志
    dir /data/redis/dir  //数据文件夹
    dbfilename dump_6379.rdb  //数据文件

    还有很多配置信息,建议仔细阅读一遍,满满干活啊  。。。。

      

      3、启动Redis

    redis-server /data/redis/config/redis.conf

      4、登陆测试一下

    # redis-cli

      单机的Redis安装配置完成

    三、Redis-Sentinel的配置

      下面说一下单机中哨兵HA的配置

      哨兵模式中至少需要三个redis节点启用,一个主节点,两个从节点,我们分别使用6379(主)、6380(从)、6381(从)端口启动三个redis服务。

      1、部署redis主从模式

      创建文件夹/data/redis/conf,把redis.conf 分别复制三份 redis_6379.conf、redis_6380.conf、redis_6381.conf,vi打开redis_6380.conf修改

    #端口
    port 6380
    
    #运行时
    pidfile /data/redis/run/redis_6380.pid
    
    #日至
    logfile /data/redis/log/redis_6380.log
    
    #数据
    dbfilename dump_6380.rdb
    
    #指定master
    slaveof 10.60.82.220 6379

    redis_6381.conf把端口改为6381,其他也做类似修改

      2、启动redis服务

      先启动主服务

    # redis-server redis_6379.conf  //主服务

      再分别启动两个从服务

    # redis-server redis_slave_6380.conf //从服务
    # redis-server redis_slave_6381.conf  //从服务

    查看进程状态

    登陆主节点   

    # redis-cli -h 10.60.82.220 -p 6379

      3、配置sentinel 

      也分别复制三个文件sentinel_26379.conf、sentinel_26380.conf、sentinel_26381.conf, 相关信息修改如下:

    port 26379
    daemonize yes
    protected-mode no
    dir "/data/redis/log/"
    logfile "sentinel_26379.log"
    
    sentinel monitor mymaster 10.60.82.220 6379 2
    sentinel down-after-milliseconds mymaster 50000
    sentinel failover-timeout mymaster 15000
    sentinel parallel-syncs mymaster 1
    #sentinel auth-pass mymaster YKHykh123456
    
    sentinel known-slave mymaster 10.60.82.220 6380
    sentinel known-slave mymaster 10.60.82.220 6381
    #sentinel current-epoch 1

    其他两个文件也做相应修改

      4、启动sentinel服务

    # redis-sentinel sentinel_26379.conf
    # redis-sentinel sentinel_26380.conf
    # redis-sentinel sentinel_26381.conf

      5、检查sentinel

    # redis-cli -h 10.60.82.220 -p 26379 //登陆服务
    > sentinel masters  //查看主服务信息
    
    > sentinel slaves mymaster //查看所有从服务信息

    配置相关就算完成了

  • 相关阅读:
    思念
    空白
    curl json string with variable All In One
    virtual scroll list All In One
    corejs & RegExp error All In One
    socket.io All In One
    vue camelCase vs PascalCase vs kebabcase All In One
    element ui 表单校验,非必填字段校验 All In One
    github 定时任务 UTC 时间不准确 bug All In One
    input range & color picker All In One
  • 原文地址:https://www.cnblogs.com/freeton/p/9112757.html
Copyright © 2011-2022 走看看