===============================================

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容器服务的方式。


 一、前提条件


 二、部署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的更多相关文章

  1. Docker Compose 部署 Redis 及原理讲解 | 懒人屋

    原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解  4.4k  字    16  分钟    2019-10-1 ...

  2. docker stack 部署 filebeat

    =============================================== 2018/7/21_第3次修改                       ccb_warlock 更新 ...

  3. Docker安装部署redis

    借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...

  4. docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)

    =============================================== 2018/7/8_第1次修改                       ccb_warlock === ...

  5. docker stack 部署 mysql 5.6

    =============================================== 2018/7/1_第1次修改                       ccb_warlock === ...

  6. docker stack 部署 seafile(http)

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  7. docker stack 部署 rabbitmq 容器

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  8. docker stack 部署 mssql

    =============================================== 2019/12/8_第1次修改                       ccb_warlock == ...

  9. 在docker中部署redis主从配置

    环境说明: 阿里云服务器 Ubuntu 16.04 docker 1.拉取Redis镜像 docker pull redis 2.配置Redis启动配置文件,此处我创建一个专用目录,存放Redis相关 ...

随机推荐

  1. VUE开发一个图片轮播的组件

    完成效果图如下: vue开发的思路主要是数据绑定,代码如下: <template> <div ref="root" style="user-select ...

  2. 基本数据结构 —— 堆以及堆排序(C++实现)

    目录 什么是堆 堆的存储 堆的操作 结构体定义 判断是否为空 往堆中插入元素 从堆中删除元素 取出堆中最大的元素 堆排序 测试代码 例题 参考资料 什么是堆 堆(英语:heap)是计算机科学中一类特殊 ...

  3. 单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo

    情况 cas单点登录 cas server 源码部署tomcat运行报错 把cas server的代码下载下来后使用gradle插件或者maven插件以及转化成eclipse·后导入发现部署到tomc ...

  4. loj2542「PKUWC2018」随机游走

    题目描述 给定一棵 nn 个结点的树,你从点 xx 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 QQ 次询问,每次询问给定一个集合 SS,求如果从 xx 出发一直随机游走,直到点集 SS ...

  5. web页面的绝对路径

    在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:一.使用${pageContext.request ...

  6. java基础-Arrays类常用方法介绍

    java基础-Arrays类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Array类的概念 此类包含用来操作数组(比如排序和搜索)的各种方法.需要注意,如果指定 ...

  7. RAC转换传统的通信

    ///////////////////各种机制转信号/////////////////////////////// 1.UI事件 [self.logInButton rac_signalForCont ...

  8. javascript精雕细琢(二):++、--那点事

    目录 引言 ++和--在数学运算中的计算规则 ++和--在变量引用时的计算规则 ++和--的数据转换应用 引言 对于接触JS时间不长的前端来说,刚开始要实现诸如轮播图,选项卡等小模块时,肯定会用到in ...

  9. nodejs 剪切图像在上传,并保存到指定路径下(./public/img/' + req.session.token + '.jpg‘)

    前jQuery端接收数据 function upAvatar(img){ console.log(img); // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQA ...

  10. Spring IOC 容器

    <bean name="userBean" class="com.nuts.demo.spring.UserBean"> <property ...