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

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. 【BZOJ4710】[JSOI2011]分特产(容斥)

    [BZOJ4710]分特产(容斥) 题面 BZOJ 题解 比较简单吧... 设\(f[i]\)表示至多有\(i\)个人拿到东西的方案数. \(f[i]=\prod_{j=1}^m C_{m+i-1}^ ...

  2. Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决

    最近发现新版的AS,IDEA毛病不断,而且gradle的更新又给墙了,无奈啊! 进入类似如下的目录,发现如果没有对应的gradle解压文件,则在gradle官网下载完整压缩包,放入类似55xxxx串号 ...

  3. Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法(转)

    Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法http://www.cnblogs.com/zdz8207/archive/2013/02/27/android- ...

  4. Docker 安装tensorflow

    安装DOCKER 1. https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ nstall from a packag ...

  5. Service Fabric基本概念:Partition/Replicas示例

    作者:张鼎松 (Dingsong Zhang) @ Microsoft 在上一节的结尾简单介绍了Service Fabric中分区Partitions和复制replicas的概念,本节主要以示例的形式 ...

  6. OpenStack 认证服务 KeyStone连接和用户管理(四)

    连接keystone两种方式: 一种使用命令 一种使用环境变量 1.通过环境变量方式连接keystone(适合在初始化场景使用) 配置认证令牌环境变量 export OS_TOKEN=07081849 ...

  7. P2158 [SDOI2008]仪仗队 && 欧拉函数

    P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...

  8. [Java] I/O底层原理之一:字符流、字节流及其源码分析

    关于 I/O 的类可以分为四种: 关于字节的操作:InputStream 和 OutPutStream: 关于字符的操作:Writer 和 Reader: 关于磁盘的操作:File: 关于网络的操作: ...

  9. vue 隐藏滚动条

    element-ui隐藏组件scrollbar: <el-scrollbar style="height:100%"> </el-scrollbar> 真正 ...

  10. node.js如何让前端请求时能跨域

    1995年,Netscape提出了一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同. 当一个浏览器的两个tab页中分别打开来 百度和谷 ...