热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Redis部署docker离线方式

redisdocker部署dockerpullregistry.docker-cn.comlibraryredisdocker-compose.ymlversion:2servic

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  :指定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


推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文提供了详细的JDK下载和安装步骤,包括多个可靠的下载源、环境配置以及如何验证安装成功。同时,文章还涉及版权问题处理和个人见解分享。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • java类名的作用_java下Class.forName的作用是什么,为什么要使用它?
    湖上湖返回与带有给定字符串名的类或接口相关联的Class对象。调用此方法等效于:Class.forName(className,true,currentLoader) ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 本文旨在探讨设计模式在Visual FoxPro (VFP) 中的应用可能性。虽然VFP作为一种支持面向对象编程(xbase语言)的工具,其OO特性相对简明,缺乏高级语言如Java、C++等提供的复杂特性,但设计模式作为一种通用的解决方案框架,是否能有效应用于VFP,值得深入研究。 ... [详细]
  • HBase 数据复制与灾备同步策略
    本文探讨了HBase在企业级应用中的数据复制与灾备同步解决方案,包括存量数据迁移及增量数据实时同步的方法。 ... [详细]
  • 本文介绍了如何通过命令行有效地终止所有 Node.js 进程实例,以解决因端口冲突或其他服务冲突导致的问题。 ... [详细]
author-avatar
木子小平方_530
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有