docker-compose配置并部署redis服务的实现
作者:zbjy 发布时间:2021-11-21 06:19:52
前言
在使用docker部署redis的时候,遇到很多坑,在此记录下遇到的问题
一、安装docker和docker-compose
### 安装docker
curl -sSL https://get.daocloud.io/docker | sh
### 启动docker
systemctl start docker
### 安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
### 将可执行权限应用于二进制文件
chmod +x /usr/local/bin/docker-compose
二、下载redis版本,本文中选择的是6.2.6版本
下载网址:download.redis.io/releases/
三、解压并复制redis.conf配置文件到服务器上,本文是放在/etc/redis/redis.conf
四、修改redis.conf配置文件
### 指定redis绑定的主机地址,注释掉这部分,使redis可以外部访问
# bind 127.0.0.1 -::1
### 指定访问redis服务端的端口
port 6379
### 指定客户端连接redis服务器时,当闲置的时间为多少(如300)秒时关闭连接(0表示禁用)
timeout 0
### 默认情况下,Redis不作为守护进程运行。如果需要,请使用“yes”
daemonize no
### 给redis设置密码,不需要密码的话则注释
# requirepass foobared
### 开启redis持久化,默认为no
appendonly yes
### 防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
tcp-keepalive 300
### 指定redis数据库的日志级别,常用的日志级别有debug、verbose、notice、warning,不进行修改的情况下默认的是notice
loglevel notice
### 指定redis数据库多长时间内(s)有多少次(c)更新操作时就把缓存中的数据同步到本地库,比如:save 600 2,指的是10分钟内有2次更新操作,就同步到本地库
save <s><c>
### 指定redis的最大内存。由于Redis 在启动时会把数据加载到内存中,当数据达到最大内存时,redis会自动把已经到期和即将到期的key值。所以可以根据需求调整自己的所需的最大内存
maxmemory 500mb
### 设置了maxmemory的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory
maxmemory-policy volatile-lru
### 设置外部网络连接redis服务,开启需配置bind ip或者设置访问密码,关闭此时外部网络可以直接访问
# protected-mode yes
五、配置docker-compose.yml
my_redis:
image: redis:6.2.6-alpine # 指定服务镜像,最好是与之前下载的redis配置文件保持一致
container_name: my_redis # 容器名称
restart: on-failure # 重启方式
environment:
- TZ=Asia/Shanghai # 设置时区
volumes: # 配置数据卷
- /root/redis/data:/data
- /etc/redis/redis.conf:/etc/redis/redis.conf
ports: # 映射端口
- "6380:6379"
sysctls: # 设置容器中的内核参数
- net.core.somaxconn=1024
# - vm.overcommit_memory=1
command: /bin/sh -c "echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
&& redis-server /etc/redis/redis.conf --appendonly yes" # 指定配置文件并开启持久化
privileged: true # 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
复制代码
六、启动容器
### 启动容器
docker-compose up -d
### 进入容器
docker exec -it my_redis /bin/sh
### 进入客户端
redis-cli
### 如果设置了密码,需要输入auth 密码
auth 你的密码
### 查看已存储的key
keys *
### 查看redis信息
info
七、redis启动后遇到的问题
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 "net.core.somaxconn=551" > /etc/sysctl.conf
sysctl net.core.somaxconn=551
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! 在内存不足的情况下,后台保存可能会失败。 要解决此问题,请将“vm.overcommit_memory = 1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory = 1”以使其生效
echo 1 > /proc/sys/vm/overcommit_memory
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl vm.overcommit_memory=1
redis报错:RDB: 0 MB of memory used by copy-on-write
由于我redis.conf配置文件,配置了save,将缓存中的数据同步到本地库,所以我暂时的解决方法是取消保存,设置save ""
八、分享个redis可视化工具
redis-insight下载链接:https://redis.com/redis-enterprise/redis-insight/
来源:https://juejin.cn/post/7081931407630532616


猜你喜欢
- 这是一个让很多站长费解的问题,很多人认为投放了Google AdSense的站点就不允许进行推广了。不过觉得困惑我想也正常,因为Google
- 方法1、因为没有像PHP自带的ReWrite模块,所以需要下载IIS Rewrite模块:http://www.isapirewrite.c
- 万众瞩目的Windows 7操作系统终于正式发布了,喜欢尝鲜的朋友想必已经开始在更新自己电脑的操作系统了吧!可只是安装好操作系统可不行,还得
- 4)我如何使用户登陆时不显示ftp服务器版本信息,以增强安全性?在proftpd.conf中添加如下内容:ServerIdentoff则再次
- 最新消息,美国主机商ixwebhosting推出中文客服,其中文站(cn.IXWebHosting.com)已经在网站顶部提示,“中文liv
- 网络一个虚拟的空间,却笼络了这么多的人心.由此可以看出它的魔力.现在SP的萧条,使一些电影站点与音乐站点纷纷找买主,因为有的连服务器费用都赚
- 10月12日国际报道 微软新版电邮和通信服务器软件Exchange 2010的程序开发已经完工。开发进度一直超前Office家族其他产品的E
- 备份管理员通常采用传统的物理备份解决方案,可能会误认为VCB是对虚拟数据中心的完整解答,因此还需要为VCB做好充足的准备和调研。选购VMwa
- 在一个著名博客上的评论一天可能被几百个读者浏览。随着博客寿命的延长,读者会越多,您会发现一个简单的评论会映射您自己。每个博客评论通常都是永久
- 现阶段中国B2C虽然很火爆,但鲜有有规模盈利成功的例子,说B2C全行业亏损一点也不过分。开个小店几百万销售有盈利的可能,但反而上规模的B2C
- 1. 安装docker;参考网址:Docker入门安装教程(小白篇) linux上安装Docker(非常简单的安装方法) 
- 一,什么是WordPress QI?WordPress QI是一个单独的WordPress的安装文件,WordPress QI最大的两个特点
- 博客作为博主与博友的交流平台,经常会有博友发表评论及回复,但是博客并不像即时聊天工具那样具有时时交流的功能,不过我们可以通过评论通知插件发送
- 免费开源博客程序wordpress正式发布wordpress 3.2版本,并同时发布了中文版本。目前官方下载地址已经替换为wordpress
- 经常在一此站长论坛里看到一些站长朋友提问:“为什么我的网站收录这么少?为什么我的收录慢慢减少“等等问题。今天就对这个问题说说自己的看法 其实
- 最近在河南电视台参加一档创意节目时,笔者有幸碰到了国内的营销大师——叶茂中先生,他在指导选手时的一番话让笔者回味至今,“少就是牺牲,少就是价
- 很多站长一天发200个论坛,也有站长一天内2个网上线。当然啦,勤能补拙是真理,但是不能把自己累死啊,这么累做包身工都比做网站赚钱啊!今天小弟
- 我们了解了DEDECMS的程序目录结构和相关模板的含义,通过第一节,我们对DEDE的模板有了一个初步的认识。在这一节,我将引导大家来分析和了
- 250定律 拉德认为:每一位顾客身后,大体有250名亲朋好友。如果您赢得了一位顾客的好感,就意味着赢得了250个人的好感;反之,如果你得罪了
- 一、简介使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系