使用docker搭建redis主从模式
前期准备:
本地Linux版本:CentOS Linux release 7.5.1804 (Core)
Docker版本:Docker version 1.13.1, build dded712/1.13.1
redis版本:Redis server v=3.2.5 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=8a9244bcd1f679f5
本地Linux版本:CentOS Linux release 7.5.1804 (Core)
Docker版本:Docker version 1.13.1, build dded712/1.13.1
redis版本:Redis server v=3.2.5 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=8a9244bcd1f679f5
本地Linux上安装Docker并下载centos7 image
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -- 安装yum源
yum install docker-io -- 安装docker
docker version -- 查看docker版本
systemctl start docker -- 启动docker服务
docker pull docker.io/centos -- 下载centos7 image
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -- 安装yum源
yum install docker-io -- 安装docker
docker version -- 查看docker版本
systemctl start docker -- 启动docker服务
docker pull docker.io/centos -- 下载centos7 image
Docker创建两个容器
docker run -d -v `pwd`/redis_m_a/m:/data -p 16379:6379 docker.io/centos /usr/sbin/init
docker run -d -v `pwd`/redis_m_a/a:/data -p 26379:6379 docker.io/centos /usr/sbin/init
分别进入两个容器并安装redis
yum install -y wget gcc make tcl
cd /usr/local/src
wget redis-3.2.5.tar.gz
tar zxvf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install
核心配置文件参数
a、Master config
vi /etc/redis/redis.conf
1.1、### NETWORK
bind 172.17.0.2 # 容器IP
port 6379
timeout 30 # Client 端空闲断开连接的时间
daemonize yes #默认值是no,把值修改为yes,以后台模式运行
1.2、### GENERAL
logfile /data/redis.log #日志文件的位置
1.3、### SNAPSHOTTING 设置:
dir /data/data #SNAPSHOTTING文件的路径
1.4、### APPEND ONLY MODE 设置
appendonly yes #默认值是No,意思是不使用AOF增量持久化的方式,使用RDB全量持久化的方式。把No值改成Yes,使用AOF增量持久化的方式
appendfsync always
b、###### Slave Config
vi /etc/redis/redis.conf
2.1、### NETWORK
bind 172.17.0.3 # 容器IP
port 6379
timeout 30 # Client 端空闲断开连接的时间
daemonize yes #默认值是no,把值修改为yes,以后台模式运行
2.2、### GENERAL
logfile /data/redis.log #日志文件的位置
2.3、### SNAPSHOTTING 设置:
dir /data/data #SNAPSHOTTING文件的路径
2.4、### REPLICATION 设置:
slaveof 172.17.0.2 6379
slave-serve-stale-data no #如果slave 无法与master 同步,设置成slave不可读,方便监控脚本发现问题。
2.5、### APPEND ONLY MODE 设置:
appendonly yes #默认值是No,意思是不使用AOF增量持久化的方式,使用RDB全量持久化的方式。把No值改成Yes,使用AOF增量持久化的方式
appendfsync always
启动主从redis
主库:
[root@docker program]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aca3e6124a1 docker.io/redis "/usr/sbin/init" 2 minutes ago Up 2 minutes 0.0.0.0:26379->6379/tcp gifted_ardinghelli
4b16704a146c docker.io/redis "/usr/sbin/init" 2 minutes ago Up 2 minutes 0.0.0.0:16379->6379/tcp angry_northcutt
[root@docker program]# docker exec -it 4b16704a146c bash
[root@4b16704a146c run]# redis-server /etc/redis/redis.conf &
[1] 173
[root@4b16704a146c run]#
[root@4b16704a146c run]# ps -ef | grep redis
root 173 30 0 07:30 ? 00:00:00 redis-server 172.17.0.2:6379
root 178 30 0 07:30 ? 00:00:00 grep --color=auto redis
从库:
[root@docker program]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aca3e6124a1 docker.io/redis "/usr/sbin/init" 2 minutes ago Up 2 minutes 0.0.0.0:26379->6379/tcp gifted_ardinghelli
4b16704a146c docker.io/redis "/usr/sbin/init" 2 minutes ago Up 2 minutes 0.0.0.0:16379->6379/tcp angry_northcutt
[root@docker program]# docker exec -it 2aca3e6124a1 bash
[root@2aca3e6124a1 run]# redis-server /etc/redis/redis.conf &
[1] 173
[root@2aca3e6124a1 run]#
[root@2aca3e6124a1 run]# ps -ef | grep redis
root 173 30 0 07:30 ? 00:00:00 redis-server 172.17.0.3:6379
root 178 30 0 07:30 ? 00:00:00 grep --color=auto redis
测试演示
[root@4b16704a146c run]# redis-cli -h 172.17.0.2 -p 6379 -a vcredit
172.17.0.2:6379> set foo hello
OK
172.17.0.2:6379>
172.17.0.2:6379> get foo
"hello"
172.17.0.2:6379> quit
[root@4b16704a146c run]# redis-cli -h 172.17.0.3 -p 6379 -a vcredit
172.17.0.3:6379> get foo
"hello"
172.17.0.3:6379> get word
"nihao"
172.17.0.3:6379>
172.17.0.3:6379> quit
使用docker搭建redis主从模式的更多相关文章
- docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接
花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...
- 【Redis】Redis学习(三) Redis 主从模式详解
不管任何程序,只运行一个实例都是不可靠的,一旦因为网络原因导致所在机器不可达,或者所在服务器挂掉,那么这个程序将不能对外提供服务了,Redis也是一样的.不过Redis的主从并不是解决这个问题的,一些 ...
- Docker 搭建 Redis Cluster 集群环境
使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...
- docker安装redis主从以及哨兵
docker安装redis主从以及哨兵 本文使用docker在四台机器上部署一主二从三哨兵的Redis主从结构. 服务器配置 192.168.102.128 主节点 centos7.5 192.168 ...
- 搭建redis哨兵模式
搭建redis哨兵模式,一主两从三哨兵 1.从官网下载redis安装包:此处是redis-5.0.7.tar.gz 2.上传到目录 /utxt/soft 3.解压 4.cd /utxt/soft/ ...
- docker部署redis主从和哨兵
docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一.前期准备工作 1.电脑装有docker 2.假设本地i ...
- 一、全新安装搭建redis主从集群
前言· 这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群.(redis结构:主-从(备)-从(备)) 至于为什么要搭建 ...
- 【Redis】Redis 主从模式搭建
主从模式介绍 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据 ...
- 5分钟实现用docker搭建Redis集群模式和哨兵模式
如果让你为开发.测试环境分别搭一套哨兵和集群模式的redis,你最快需要多久,或许你需要一天?2小时?事实是可以更短. 是的,你已经猜到了,用docker部署,真的只需要十几分钟. 一.准备工作 拉取 ...
随机推荐
- linux令普通用户拥有root权限
如题,平时我们在自己电脑上玩linux,基本都是一个root用户就够了(反正我99%时间都是直接用root用户登录系统),可如果在公司里就不行了,有时候需要多个用户对系统具有root权限,类似与一个系 ...
- Architecture options to run a workflow engine
This week a customer called and asked (translated into my own words and shortened): “We do composite ...
- Nginx可以做什么?看完这篇你就懂了
本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得,欢迎留言交流. Nginx能做什么 —— ...
- C++ vs Objective C
oc Short list of some of the major differences: C++ allows multiple inheritance, Objective-C doesn't ...
- java-http通信调用与创建
java项目使用HTTP的请求.主要有两种方式:①使用JDK自带的java.net包下的HttpURLConnection方式. ②使用apache的HttpClient方式. 一.使用JDK自带的j ...
- 解决The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone
Spring Boot JPA 使用Mysql是出现如下错误: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represe ...
- Linux VMware安装VMTools工具
安装VMTools工具 2)先启动CentOS并成功登录如下图,发现底部提示且窗口中等大小,准备安装 3)选择虚拟机菜单栏--安装VMware tools 4)光驱自动挂载VMTools 5)右键解压 ...
- pyhanlp 中文词性标注与分词简介
pyhanlp 中文词性标注与分词简介 pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式 第一种是直接从封装好的hanlp类中获取,这种获取方式一共可以获取五种分 ...
- C#实现Google S2算法
S2其实是来自几何数学中的一个数学符号 S²,它表示的是单位球.S2 这个库其实是被设计用来解决球面上各种几何问题的.值得提的一点是,除去 golang 官方 repo 里面的 geo/s2 完成度目 ...
- verilog编码规范
verilog编码规范 1.Register with Rising-Edge Coding Example (Verilog) Flip-Flops and Registers Control Si ...