• 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 //查看所有从服务信息

    配置相关就算完成了

  • 相关阅读:
    【技术贴】每次打开excel表格都会弹出新excel。book1.xls解决方法
    【技术贴】鼠标右键盘符属性报错Volume filter WMI not found的解决办法
    解决QQ聊天QQ秀咒语为什么我不能施放咒语/看不到咒语效果?
    【java】servlet输出pdf文件到浏览器 教程
    C#抽象工厂模式的几种实现方法及比较(外摘)
    SQL 语句汇总With子句
    浅析.NET开发中代理模式的使用(外摘)
    使用设计模式构建通用数据库访问类(外摘)
    Cognos产品组件及各组件功能介绍
    游标Oracle游标汇总
  • 原文地址:https://www.cnblogs.com/freeton/p/9112757.html
Copyright © 2020-2023  润新知