docker-compose怎么配置并部署redis服务(compose,docker,redis,开发技术)

时间:2024-05-07 02:50:25 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、安装docker和docker-compose

###安装dockercurl-sSLhttps://get.daocloud.io/docker|sh###启动dockersystemctlstartdocker###安装docker-composecurl-Lhttps://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版本

docker-compose怎么配置并部署redis服务

三、解压并复制redis.conf配置文件到服务器上,本文是放在/etc/redis/redis.conf

docker-compose怎么配置并部署redis服务

四、修改redis.conf配置文件

###指定redis绑定的主机地址,注释掉这部分,使redis可以外部访问#bind127.0.0.1-::1###指定访问redis服务端的端口port6379###指定客户端连接redis服务器时,当闲置的时间为多少(如300)秒时关闭连接(0表示禁用)timeout0###默认情况下,Redis不作为守护进程运行。如果需要,请使用“yes”daemonizeno###给redis设置密码,不需要密码的话则注释#requirepassfoobared###开启redis持久化,默认为noappendonlyyes###防止出现远程主机强迫关闭了一个现有的连接的错误默认是300tcp-keepalive300###指定redis数据库的日志级别,常用的日志级别有debug、verbose、notice、warning,不进行修改的情况下默认的是noticeloglevelnotice###指定redis数据库多长时间内(s)有多少次(c)更新操作时就把缓存中的数据同步到本地库,比如:save6002,指的是10分钟内有2次更新操作,就同步到本地库save<s><c>###指定redis的最大内存。由于Redis在启动时会把数据加载到内存中,当数据达到最大内存时,redis会自动把已经到期和即将到期的key值。所以可以根据需求调整自己的所需的最大内存maxmemory500mb###设置了maxmemory的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemorymaxmemory-policyvolatile-lru###设置外部网络连接redis服务,开启需配置bindip或者设置访问密码,关闭此时外部网络可以直接访问#protected-modeyes

五、配置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.confports:#映射端口-"6380:6379"sysctls:#设置容器中的内核参数-net.core.somaxconn=1024#-vm.overcommit_memory=1command:/bin/sh-c"echo'vm.overcommit_memory=1'>>/etc/sysctl.conf&&redis-server/etc/redis/redis.conf--appendonlyyes"#指定配置文件并开启持久化privileged:true#使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限

六、启动容器

###启动容器docker-composeup-d###进入容器dockerexec-itmy_redis/bin/sh###进入客户端redis-cli###如果设置了密码,需要输入auth密码auth你的密码###查看已存储的keykeys*###查看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.confsysctlnet.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”以使其生效

echo1>/proc/sys/vm/overcommit_memoryecho"vm.overcommit_memory=1">>/etc/sysctl.confsysctlvm.overcommit_memory=1
  • redis报错:RDB: 0 MB of memory used by copy-on-write

docker-compose怎么配置并部署redis服务

由于我redis.conf配置文件,配置了save,将缓存中的数据同步到本地库,所以我暂时的解决方法是取消保存,设置save ""

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:docker-compose怎么配置并部署redis服务的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Dubbo+zookeeper搭配分布式服务的方法下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18