typora-root-url: assets
Centos7.8安装部署redis6.2.7(单机模式)
1、访问redis官网下载安装对应的安装包
下载链接:https://download.redis.io/releases/redis-6.2.7.tar.gz
2、环境直接yum安装gcc、make
3、进入压缩包src目录下进行源码编译,将redis安装到/usr/local/redis
目录下
make install PREFIX=/usr/local/redis
4、起始的配置文件在安装包的解压目录下,后面可以自定义一个存放配置文件的地方存放redis的配置文件配置文件中的具体的参数的含义如下:
-
后台启动
daemonize yes
-
密码访问
requirepass Redis@dml
-
开启保护模式
protected-mode yes
-
允许远程访问
bind 172.24.215.134
或者注释掉 -
本地数据库存放持久化数据的目录该目录-----需要存在
dir /data/application/redis/data
安装完毕后所有的配置文件均在安装目录的bin目录下其中redis-cli为客户端,redis-service为服务端
安装完毕后可直接执行redis-service 验证是否安装成功。
启动: ./redis-server ../etc/redis.conf
测试:./redis-cli
5、设置开机启动
配置redis为systemctl启动
[root@redis-master redis]# cd /lib/systemd/system
[root@redis-master system]# vim redis.service
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
[Install]
WantedBy=multi-user.target
参数详解:
• [Unit] 表示这是基础信息
• Description 是描述
• After 是在那个服务后面启动,一般是网络服务启动后启动
• [Service] 表示这里是服务信息
• ExecStart 是启动服务的命令
• ExecStop 是停止服务的指令
• [Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
8.启动服务:
[root@redis-master system]# systemctl daemon-reload #重新加载
[root@redis-master system]# systemctl start redis.service
单机模式到此部署结束。
主从模式配置 配置时在各从节点上按照单集群模式来操作其余的只需关闭protected-mode模式并配置好相应的胡节点的IP和端口号即可。
关闭protected-mode模式,此时外部网络可以直接访问
在从节点配置文件中配置主节点的ip和端口号 replicaof
测试主从
1.在master上面执行
[root@redis-master redis]# cd src/
[root@redis-master src]# ./redis-cli
127.0.0.1:6379> ping
PONG`
127.0.0.1:6379> set name jack
OK`
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>
2.分别在slave-1和slave-2上面执行:
[root@redis-slave-1 redis]# cd src/`
[root@redis-slave-1 src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>
[root@redis-slave-2 src]# ./redis-cli
127.0.0.1:6379> ping
PONG`
127.0.0.1:6379> get name
"jack"`
127.0.0.1:6379>
查看复制状态
master执行:
127.0.0.1:6379> info replication
Replication role:master
connected_slaves:2
slave0:ip=192.168.246.203,port=6379,state=online,offset=490,lag=0
slave1:ip=192.168.246.204,port=6379,state=online,offset=490,lag=1
slave上面执行:
127.0.0.1:6379> info replication
Replication
role:slave
master_host:192.168.246.202
master_port:6379
master_link_status:up
redis-sentinel—哨兵模式
1、哨兵简介:Redis Sentinel
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中是Redis官方推荐的高可用性(HA)解决方案。
2、作用
1):Master状态检测
2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave
3):Master-Slave切换后,sentinel.conf的监控目标会随之调换
3、工作模式
1):每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令
2):如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。
3):如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。
4):当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线 。
4、主观下线和客观下线
主观下线:Subjectively Down,简称 SDOWN,指的是当前 一个Sentinel 实例对某个redis服务器做出的下线判断。
客观下线:Objectively Down, 简称 ODOWN,指的是多个 Sentinel 实例在对Master Server做出 SDOWN 判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,然后开启failover
5、配置哨兵模式
1.每台机器上修改redis主配置文件redis.conf文件设置:bind 0.0.0.0
2.每台机器上修改sentinel.conf配置文件
进入到redis安装包的解压目录下
[root@redis-master redis]# vim sentinel.conf
sentinel monitor mymaster 10.0.0.137 6379 2 #当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。 (slave上面写的是master的ip,master写自己ip)
sentinel down-after-milliseconds mymaster 3000 #单位毫秒,3000毫秒就是3秒,slave每隔3秒钟给master发送心跳检测
sentinel failover-timeout mymaster 10000 #若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。
protected-mode no #关闭受保护模式--新添加到sentinel配置文件中
3.每台机器启动哨兵服务:
[root@redis-master redis]# ./src/redis-sentinel sentinel.conf
注意:在生产环境下将哨兵模式启动放到后台执行:
./src/redis-sentinel sentinel.conf &
将master的哨兵模式退出(Crtl+c),再将redis服务stop了,在两台slave上面查看其中一台是否切换为master:(没有优先级,为随机切换)
在slave机器上面查看: