Redis部署-docker-离线方式

redis部署

redis docker部署

docker pull registry.docker-cn.com/library/redis
docker-compose.yml
version: '2'
services:
   redis:
      image: redis:latest
      container_name: redis
      restart: always
      ports:
        - 3308:6379
      volumes:
        - /data/home/redis/config/redis.conf:/usr/local/etc/redis/redis.conf
        - /data/home/redis/data:/data
      command: redis-server /usr/local/etc/redis/redis.conf

离线部署redis

【准备】
1.Centos7.x系统
2.安装gcc
3.redis安装包

【防火墙配置】

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service 


关闭selinux 
进入到/etc/selinux/config文件

vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled



【安装】
tar -zxvf redis-5.0.5.tar.gz
编译
make
安装
make PREFIX=/usr/local/redis install    


在/usr/local/redis/下创建redis.conf和sentinel.conf文件

主:redis.conf
port 6379
bind 192.168.18.190  #本机ip
requirepass "myredis"   #认证密码
daemonize yes   #支持后台运行,默认值为no
logfile "6379.log"   #日志文件
dbfilename "dump-6379.rdb"  #数据库文件
dir "./"  

#如若master设置了认证密码,那么所有redis数据节点都配置上masterauth属性


从:redis.conf
port 6379
bind 192.168.18.191
requirepass "myredis"  #认证密码
daemonize yes
logfile "6379.log"
dbfilename "dump-6379.rdb"
dir "./"
#如若master设置了认证密码,那么所有redis数据节点都配置上masterauth属性
masterauth "myredis"  #主库密码
slaveof 192.168.18.190 6379

【sentinel】
port 26379
#开启守护进程
daemonize yes
dir "/tmp"  #Sentinel服务运行时使用的临时文件夹
#指定日志文件存放位置
logfile "26379.log"
#指定主的IP 端口 “2”代表有两个哨兵进程发现主服务器宕机便选取一个从服务器为主
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.18.190 6379 2   #主master
#redis数据master节点设置了认证,则需要如下配置
sentinel auth-pass mymaster myredis               #认证密码
sentinel down-after-milliseconds mymaster 30000
sentinel config-epoch mymaster 1
sentinel failover-timeout mymaster 180000



【配置文件说明:】
1. port :当前Sentinel服务运行的端口

2. dir : Sentinel服务运行时使用的临时文件夹

3.sentinel monitor master001 192.168.110.101 6379 2:Sentinel去监视一个名为master001的主redis实例,这个主实例的IP地址为本机地址192.168.110.101,端口号为6379,而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行

4.sentinel down-after-milliseconds master001 30000:指定了Sentinel认为Redis实例已经失效所需的毫秒数。当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线,这时自动故障迁移才会执行

5.sentinel parallel-syncs master001 1:指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长

6.sentinel failover-timeout master001 180000:如果在该时间(ms)内未能完成failover操作,则认为该failover失败

7.sentinel notification-script <master-name> <script-path>:指定sentinel检测到该监控的redis实例指向的实例异常时,调用的报警脚本。该配置项可选,但是很常用


redis-cli -h 192.168.18.190 -p 6379 -a 123456 info replication
redis-cli -h 192.168.18.191 -p 6379 -a 123456 info replication
redis-cli -h 192.168.18.191 -p 6379 -a 123456 info replication
redis-server /etc/redis/6379.conf 	
redis-server /etc/redis/6379.conf #启动redis
redis-cli -h 192.168.18.190 -p 6379 -a 123456 shutdown  #关闭redis



【连接】
redis-cli -h 192.168.18.190 -p 6379 -a myredis
【关闭】 
redis-cli -h 192.168.18.190 -p 6379 -a myredis shutdown

posted @ 2021-01-25 13:27  暮雪超霸  阅读(780)  评论(0编辑  收藏  举报