docker stack 部署 redis
===============================================
2019/10/21_第3次修改 ccb_warlock
更新说明:
2019/10/21:1.redis的配置文件中增加了内存大小的限制
2.stack文件中,修改了redis4的最后版本的镜像(redis:4.0.14-alpine)
3.stack文件中,增加了资源限制、更新回滚的配置
4.增加了swarm网络的创建语句
2019/4/16:1.修改了2.3内容不正确的问题;
2.去掉了redis.conf的注释内容,使配置项更信息;
===============================================
redis作为目前性能较高的nosql数据库在业务的运用中越来越广泛,由于redis的容器化已经比较成熟,故本篇整理stack中部署redis容器服务的方式。
一、前提条件
- 环境中已经部署了docker swarm(http://www.cnblogs.com/straycats/p/8978135.html)
- 最好也部署了portainer(http://www.cnblogs.com/straycats/p/8978201.html)
二、部署redis
2.1 创建映射的本地目录
mkdir -p /usr/docker-vol/redis/conf
mkdir -p /usr/docker-vol/redis/data
2.2 添加配置文件redis.conf
vi /usr/docker-vol/redis/conf/redis.conf
# 添加下面的内容到redis.conf,wq保存(该配置文件中配置了redis的密码123456,根据实际情况可以注释掉)
# 限制ip连接该redis
#bind 127.0.0.1 # 保护模式
protected-mode no # 端口
port 6379 # 内存限制
maxmemory 512mb
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100 # 密码
requirepass 123456 lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no # 持久化。开启yes,关闭no(默认)
appendonly yes appendfilename "appendonly.aof" # 每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
# appendfsync always
# (默认)每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐使用这个配置
appendfsync everysec
# 完全依赖os,性能最好,持久化没保证
# appendfsync no no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
2.3 配置redis-stack.yml
cd
vim redis-stack.yml
# 添加下面的内容到redis-stack.yml文件内,wq保存。
version: '3.6'
services: redis:
image: redis:4.0.14-alpine
environment:
- TZ=Asia/Shanghai
volumes:
# 配置文件
- /usr/docker-vol/redis/conf/redis.conf:/etc/redis.conf
# 持久化的文件所在目录
- /usr/docker-vol/redis/data:/data
command:
redis-server /etc/redis.conf
deploy:
replicas: 1
restart_policy:
condition: any # on-failure
resources:
limits:
cpus: "1"
memory: 512M
update_config:
parallelism: 1
delay: 5s
monitor: 10s
max_failure_ratio: 0.1
order: start-first
ports:
- 6379:6379
networks:
- net01 networks:
net01:
external: true
2.4 创建网络
# swarm用的网络
docker network create \
--driver=overlay \
--subnet=172.12.0.0/16 \
--ip-range=172.12.0.0/16 \
--gateway=172.12.0.1 \
--attachable \
net01
2.5 创建栈
1)命令方式
cd
docker stack deploy -c redis-stack.yml redis-stack
2)portainer界面方式(推荐)
登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加rabbitmq-stack.yml文件中的内容)
参考资料:
1.https://blog.csdn.net/zyz511919766/article/details/42268219
docker stack 部署 redis的更多相关文章
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- docker stack 部署 filebeat
=============================================== 2018/7/21_第3次修改 ccb_warlock 更新 ...
- Docker安装部署redis
借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...
- docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)
=============================================== 2018/7/8_第1次修改 ccb_warlock === ...
- docker stack 部署 mysql 5.6
=============================================== 2018/7/1_第1次修改 ccb_warlock === ...
- docker stack 部署 seafile(http)
=============================================== 2018/5/13_第1次修改 ccb_warlock == ...
- docker stack 部署 rabbitmq 容器
=============================================== 2018/5/13_第1次修改 ccb_warlock == ...
- docker stack 部署 mssql
=============================================== 2019/12/8_第1次修改 ccb_warlock == ...
- 在docker中部署redis主从配置
环境说明: 阿里云服务器 Ubuntu 16.04 docker 1.拉取Redis镜像 docker pull redis 2.配置Redis启动配置文件,此处我创建一个专用目录,存放Redis相关 ...
随机推荐
- IDEA的强大
由于朋友推荐,转战IDEA数日,发现一个字就是,牛,完爆任何开发工具,让你代码上瘾的工具. 它集合了所有的开发所需要的东西,且智能化方便,适合开发有一定经验的人去使用,你会爱上它. 下面是快捷键的使用 ...
- UML类图与类间六种关系表示
UML类图与类间六种关系表示 1.类与类图 类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性,操作,关系的对象集合的总称. 类图是使用频率最高的UML图之一. 类图用于描述系统中所包含的 ...
- awk 脚本同时解析多个文件
ARGC The number of command line arguments (does not include options to gawk ...
- 【题解】【雅礼集训 2017 Day5】远行 LOJ 6038 LCT
Prelude 快要THUWC了,练一练板子. 传送到LOJ:o(TヘTo) Solution 首先有一条定理. 到树中任意一点的最远点一定是直径的两个端点之一. 我也不会证反正大家都在用,似乎可以用 ...
- socket利用多线程实现一对多通信
1.服务器端:socket()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接.将accept()写入死循环,每次连接一个客户端,开一个线程. 2.一般情况下建立s ...
- java基础-迭代器(Iterator)与增强for循环
java基础-迭代器(Iterator)与增强for循环 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Iterator迭代器概述 Java中提供了很多个集合,它们在存储元素时 ...
- 二维数组和指针(C语言)
二维数组和指针 二维数组和指针1.二维数组和数组元素的地址若有以下定义:int *p, a[3][4]; 1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的 ...
- bzoj千题计划166:bzoj2179: FFT快速傅立叶
http://www.lydsy.com/JudgeOnline/problem.php?id=2179 FFT做高精乘 #include<cmath> #include<cstdi ...
- bzoj千题计划146:bzoj3295: [Cqoi2011]动态逆序对
http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小 ...
- 权限 mock location
1.集成环信的时候,该权限报错: mock location权限是是“允许程序创建模拟位置”,主要是提供用于测试.打包的时候并不需要,所以解决办法分两步: 1.声明tools 2.添加忽略: