DB——redis持久化 与 常见问题 末蓝、 2021-07-25 22:32 239阅读 0赞 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70] -------------------- QQ 1274510382 Wechat JNZ\_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技aming 网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。 叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司 民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/ 安全项目:态势感知防御系统/内网巡查系统 云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing 产品咨询/服务售后(同) ## 纸上得来终觉浅,绝知此事要躬行 !!! 寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!! ## -------------------- #### \#本文为广告系统自动投放广告 #### #### \# 如有侵权 删改 请速速联系我们 #### #### \#开发运维\# #### * fork操作——子进程开销与优化 ##### fork本身 ##### (1)同步操作 虽然fork同步操作是非常快的,但是如果需要同步的数据量过大,fork就会阻塞redis主进程。 (2)与内存量息息相关 内存越大,fork同步数据耗时越长,当然也跟服务器有关,服务器有物理机,也有虚拟机。 (3)info:latest\_fork\_usec 使用此命令可以查看持久化花费的时间,如果持久化时间过长,就会造成卡顿。 例如: 如果redis此时QPS上万,此时redis正在持久化,而且持久化时间比较长(1s或者10几秒), 这个时候就会严重阻塞redis。 2、改善fork (1)优先使用物理机或者高效的虚拟机支持fork操作 (2)控制redis实际最大可用内存:maxmemory (3)合理配置linux内存分配策略:vm.overcommit\_memory=1 (4)降低fork频率:例如放宽AOF重写自动触发时机,减少不必要的全量复制。 -------------------- * 进程外开销 * AOF追加阻塞 ——造成客户端超时 * 单机 多部署 实例 #### 解决方案 #### 考虑到redis一般都是部署在服务器上作为服务存在的。所以,本文的解决方案都是持久性配置,不是临时配置。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 1]![在这里插入图片描述][20210115090723576.png] ![在这里插入图片描述][20210112213159421.png] 第一个警告: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 对一个高负载的环境来说tcp设置128这个值,太小了。 然后我们可以手动设置,或者设置永久值.所以执行: echo 511 > /proc/sys/net/core/somaxconn ![在这里插入图片描述][20210115094957416.png] 但是这个只是暂时的。如果想要永久解决,打开/etc/sysctl.conf ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 2] vi /etc/sysctl.conf 在这里面添net.core.somaxconn= 1024 然后执行sysctl -p 就可以永久消除这个warning ![在这里插入图片描述][20210115095303532.png] 第二个警告: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. 将vm.overcommit\_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。 sysctl -p ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 3] ![在这里插入图片描述][20210115115819976.png] 第三个警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue run the command ‘echo never > /sys/kernel/mm/transparent\_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain thesetting after a reboot. Redis must be restarted after THP is disabled. ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 4] 将 echo never > /sys/kernel/mm/transparent\_hugepage/enabled 添加到/etc/rc.local中 vi /etc/rc.local ![在这里插入图片描述][2021011509491635.png]![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 5] 然后执行source /etc/rc.local生效配置 cd /etc/init.d systemctl restart redis_6379 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 6] ### 死活连接不上 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 7] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 8] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 9] ![在这里插入图片描述][20210115153240138.png] 禁用防火墙 在RHEL7开始,使用systemctl工具来管理服务程序,包括了service和chkconfig \[root@rhel7 ~\]\# systemctl stop firewalld.service \[root@rhel7 ~\]\# systemctl disable firewalld.service \[root@rhel7 ~\]\# systemctl status firewalld.service ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 10] 启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $? 查看已启动的服务列表:systemctl list-unit-files|grep enabled 关闭防火墙 #### 改完配置一定要重启!重启!重启! #### ![在这里插入图片描述][20210115154232983.png] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 11] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 12] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70]: /images/20210725/e13742e8c4f64bc6bfe06338444d1a08.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 1]: https://img-blog.csdnimg.cn/20210115094558891.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw,size_16,color_FFFFFF,t_70 [20210115090723576.png]: /images/20210725/c8186f3c478e4a268722001ba521d3bf.png [20210112213159421.png]: /images/20210725/9cacb4841ff649b49d9a359979f53e75.png [20210115094957416.png]: /images/20210725/424bb6bb81b24ad6bad51705b6dd4688.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 2]: /images/20210725/68f4cb95222f4c5193cf370b27f6d9a1.png [20210115095303532.png]: /images/20210725/b213242a44d448f6bce103308295347e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 3]: /images/20210725/1d10c8e7861b465b92d1a5142e1530e0.png [20210115115819976.png]: /images/20210725/42de4d12cce9428c9803d493d1a229e9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 4]: /images/20210725/5448a523ad194dc7bc0aef16701d714d.png [2021011509491635.png]: https://img-blog.csdnimg.cn/2021011509491635.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 5]: /images/20210725/8694d81321d54bfb82939e435b9efb6a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 6]: /images/20210725/1750f31a4a514aaaaebb4324f9b2f3fb.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 7]: /images/20210725/ebe014457e3143a2ade1a3661015c1b8.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 8]: /images/20210725/3978cb721a2d4ecfb3cf9cb54f156aff.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 9]: /images/20210725/ccb25ce0b8aa4102b154b292e7f2c065.png [20210115153240138.png]: /images/20210725/3e5ea0f6be804635be0aa1b2015f8ed4.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 10]: /images/20210725/6a15fe7c69ac43649d2fa5a826172f36.png [20210115154232983.png]: /images/20210725/d49f88644dd04daa8732201622e77519.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 11]: /images/20210725/474aec4b2a3341768795e6b218b34c50.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw_size_16_color_FFFFFF_t_70 12]: /images/20210725/75fc806aa92241e383d48c39a7e944db.png
相关 Java持久化技术:常见问题及解决办法 在Java的持久化技术中,可能会遇到一些常见的问题。以下是一些问题及其解决方案: 1. **JDBC连接问题**: - 确保配置了正确的URL、用户名和密码。 - 水深无声/ 2024年09月12日 11:15/ 0 赞/ 10 阅读
相关 Java序列化与反序列化问题:在通信或持久性存储中常见的问题 在Java编程中,序列化和反序列化是常遇到的问题。这些问题主要出现在需要跨进程或跨机器通信的场景。 1. 序列化(Serialization): - 将对象转换为数据流 超、凢脫俗/ 2024年09月11日 10:00/ 0 赞/ 16 阅读
相关 Java序列化与反序列化:常见问题与示例 Java的序列化和反序列化是将对象转换为字节流,以及将字节流还原为对象的过程。 以下是一些常见的问题及示例: 1. **未找到类**:如果在反序列化时找不到对应的类文件,会 Dear 丶/ 2024年09月10日 14:12/ 0 赞/ 25 阅读
相关 【Redis】8.RDB持久化与AOF持久化 文章目录 1. Redis持久化 2. RDB持久化 3. RDB原理 4. AOF持久化 5. AOF配置 6. AOF文件重写 偏执的太偏执、/ 2024年04月01日 15:15/ 0 赞/ 39 阅读
相关 Redis的持久化机制详解—RDB与AOF持久化 > 详细介绍了Redis的持久化机制,包括RDB与AOF持久化,以及混合持久化。 文章目录 1 数据持久化 2 RDB(Redis DataBase)快照 ╰半夏微凉°/ 2022年08月28日 11:42/ 0 赞/ 171 阅读
相关 redis系列:RDB持久化与AOF持久化 前言 什么是持久化? > 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据 红太狼/ 2022年04月18日 06:12/ 0 赞/ 224 阅读
相关 Redis持久化机制:快照持久化和AOF持久化 持久化功能 redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器 重启之后会把硬盘中的数据恢复到内存(redis)的里边。 数 古城微笑少年丶/ 2021年09月14日 13:12/ 0 赞/ 478 阅读
相关 DB——redis持久化 与 常见问题 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 末蓝、/ 2021年07月25日 22:32/ 0 赞/ 240 阅读
还没有评论,来说两句吧...