一、 Linux下安装Redis
官网下载链接:https://redis.io/download
把下载好的安装包传到指定目录,本示例是redis4.0版本,安装目录为/opt/app。
1、安装gcc环境
由于redis是由C语言编写的,它的运行需要C环境,因此我们需要先安装gcc。安装命令如下:
进入到/opt/app/redis-4.0.0目录下,进行编译与安装
2、为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中(根据自己的习惯而定)
(1)在/opt/app/redis-4.0.0目录下创建bin和etc文件夹
(2)将/opt/app/redis-4.0.0目录下的redis.conf文件移动到刚创建的etc文件夹下,将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到刚创建的bin目录下。
3、进入到/opt/app/redis-4.0.0/etc目录下,编辑 redis.conf配置文件,设置后台启动redis服务
(1)把文件中的daemonize属性改为yes(表明需要在后台运行)
(2)编辑 redis.conf配置文件,开启redis远程访问服务(根据自己需求而定)
把 redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。
把 redis.conf配置文件中的 protected-mode 设置成no(默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)
编辑 redis.conf配置文件,修改Redis默认密码 (默认密码为空)
(1)在配置文件中找到这一行 # requirepass foobared
(2)删除前面的注释符号#,并把foobared修改成自己的密码 或者 另起一行 requirepass 自己的密码
4、启动redis服务
切换到/opt/app/redis-4.0.0/bin/目录下执行 redis-server 命令,使用/opt/app/redis-4.0.0/etc/redis.conf配置文件来启动redis服务。
5、打开RedisDesktopManager,测试服务是否开启 以及 是否可以远程访问Redis
Redis的整个安装过程到此结束。
二、 Redis一主二从Sentinel监控配置
Redis部署方式采用主备的方式,通过Redis自带的工具Sentinel来对Redis集群进行管理,并实现主备自动切换功能。
正常工作时,实例A为集群中master机器,由A面向Client提供服务,B和C为A的slave节点,在正常工作期间同步A的数据信息。当实例A down掉之后,会有Sentinel在B和C中选举出一个实例,成为新的master来提供服务,剩下的节点自动成为新master的slave节点,实现融灾备份。整个服务IP的获取通过与Sentinel交互来获得。
开启哨兵模式,至少需要3个Sentinel实例。
本例通过3个Sentinel实例监控3个Redis服务(1主2从)。
IP地址 节点角色&端口
10.225.X.12 Master:7001 / Sentinel : 27001
10.225.X.13 Slave :7001 / Sentinel : 27001
10.225.X.14 Slave :7001 / Sentinel : 27001
在10.225.X.13和10.225.X.14的redis.conf配置中添加一行
slaveof 10.225.X.12 7001
在10.225.X.12、10.225.X.13、10.225.X.14 /opt/app/redis-4.0.0目录下创建sentinel配置文件(单例安装后根目录下默认有sentinel.conf,可以先备份默认的配置)
cd /opt/app/redis-4.0.0
mkdir sentinel-tmp
touch sentinel.conf
vim sentinel.conf
sentinle.conf配置文件内容,三台机器相同
daemonize yes
port 27001
protected-mode no
dir " /opt/app/redis-4.0.0/sentinel-tmp "
sentinel monitor redis-master 10.225.X.12 7001 2
sentinel down-after-milliseconds redis-master 30000
sentinel failover-timeout redis-master 180000
sentinel parallel-syncs redis-master 1
在3台机器上分别启动Redis和Sentinel
./redis-server ../etc/redis.conf
cd /opt/app/redis-4.0.0/src
nohup ./redis-sentinel ../sentinel.conf
在3台机器上查看集群状态:
redis> info replication
问题:
问题1:slave可以显示master信息,而master没有slave信息。
问题2:master宕机后slave没有被提升为master。
可能原因:
master信息配置不正确;需要配置auth-pass。