[docker] docker-compose-redis.yml

引言:作为一名专业的资深开发,本地一定拥有了不少开源项目以供学习,每次都要去启动 mysql 数据库跟 redis 服务器,这种操作1.挺烦的,挺费时间,每次都要启动命令来一次;2.占用自己电脑的资源,本来服务开多了电脑就累,这些公共的东西太费电脑了。因此能快捷的把这些服务搭在一些便宜的云服务器上,是我喜欢的方式,趁着618、双 11 这些节去薅一薅云服务商的羊毛搞一台,把这些中间件部署上去,本地配置文件一修改只要负责启动项目就行了,这种感觉太棒了!
那么速搭首选 docker,实在是太太太快了!
因此[docker]这个系列的 yml 就是为速搭准备的,配置文件不是最优,但最快,基本满足常规使用,我会持续优化更新…

  1. 安装 docker -> https://www.runoob.com/docker/centos-docker-install.html
  2. 安装 docker-compose -> https://www.runoob.com/docker/docker-compose.html
  3. mkdir -p /docker 新建 docker-compose-redis.yml 后面跟着做就行了

/docker/docker-compose-redis.yml

version: '3'

services:
  redis:
    image: redis:6.2.7
    container_name: redis
    ports:
      - "6379:6379"
    environment:
      # 时区上海
      TZ: Asia/Shanghai
    volumes:
      # 配置文件
      - /docker/redis/conf:/redis/config
      # 数据文件
      - /docker/redis/data/:/redis/data/
    command: "redis-server /redis/config/redis.conf"
    privileged: true
    network_mode: "host"

新建容器挂载目录以及赋予 redis 数据目录(data)写入权限

mkdir -p /docker/redis/data
mkdir -p /docker/redis/conf
cd /docker/redis;chmod 777 data

/docker/redis/conf/redis.conf 注意修改 redis 密码 requirepass 的值,免密连接的直接注释

# 设置允许所有地址访问
bind 0.0.0.0
# redis 密码
requirepass password

# key 监听器配置
# notify-keyspace-events Ex

# 配置持久化文件存储路径
dir /redis/data
# 配置rdb
# 15分钟内有至少1个key被更改则进行快照
save 900 1
# 5分钟内有至少10个key被更改则进行快照
save 300 10
# 1分钟内有至少10000个key被更改则进行快照
save 60 10000
# 开启压缩
rdbcompression yes
# rdb文件名 用默认的即可
dbfilename dump.rdb
# 开启aof
appendonly yes
# 文件名
appendfilename "appendonly.aof"
# 持久化策略,no:不同步,everysec:每秒一次,always:总是同步,速度比较慢
# appendfsync always
appendfsync everysec
# appendfsync no

docker-compose -f docker-compose-redis.yml up -d 启动(先等等,先解决下面 2 个问题的设置再行启动一步到位)

遇到的问题:

  1. WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

意思是:TCP backlog设置值,511没有成功,因为 /proc/sys/net/core/somaxconn这个设置的是更小的128.

# 临时解决方法
echo 511 > /proc/sys/net/core/somaxconn
# 永久解决方法(根据内存定义值,这里是 2g=2048)
echo net.core.somaxconn=2048 >> /etc/sysctl.conf
sysctl -p
  1. WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

意思是:overcommit_memory参数设置为0!在内存不足的情况下,后台程序save可能失败。建议在文件 /etc/sysctl.conf 中将overcommit_memory修改为1。
具体 0、1、2 的含义
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1: 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2: 表示内核允许分配超过所有物理内存和交换空间总和的内存

# 如果内存情况比较紧张的话会告警,需要设定内核参数:内存分配策略 1
# 方法一(建议):
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
sysctl -p
# 方法二:
sysctl vm.overcommit_memory=1

mysql 速搭传送门:https://blog.csdn.net/weixin_44462681/article/details/139410329

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GaoJamie

您的鼓励将是我更新的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值