Redis在生产中不得不重视的几个运维问题
Redis 运维的故障有哪些?如何排查?
常见的运维故障
使用 keys * 把库堵死,——建议使用别名把这个命令改名
超过内存使用后,部分数据被删除——这个有删除策略的,选择适合自己的即可
没开持久化,却重启了实例,数据全掉——记得非缓存的信息需要打开持久化
RDB 的持久化需要 vm.overcommit_memory=1,否则会持久化失败
没有持久化情况下,主从,主重启太快,从还没认为主挂的情况下,从会清空自己的数据——人为重启主节点前,先关闭从节点的同步
排查方法
了解清楚业务数据流是怎么样的流向
结合 Redis 监控查看 QPS、缓存命中率、内存使用率等信息
确认机器层面的资源是否有异常
故障时及时上机,使用 redis-cli monitor 打印出操作日志,然后分析(事后分析此条失效)
和研发沟通,确认是否有大 Key 在堵塞(大 Key 也可以在日常的巡检中获得)
和组内同事沟通,确实是否有误操作
和运维同事、研发一起排查流量是否正常,是否存在被刷的情况
更多的排查需要对线上系统的分析。
Redis 性能优化
根据不同业务选择数据类型,有必要时对数据结构进行审核,减少数据冗余
精简键名和键值,控制键值的大小
使用前缀管理好 key,防止key的重名导致value被覆盖
使用 scan 代替 keys,将遍历 Redis DB 中所有 key 的操作放到客户端来做
避免使用 O(N) 复杂度的命令
配置使用 ziplist 来优化 list
合理配置 maxmemory
数据量大的情况,做好 key 和 value 的压缩
利用管道,批量处理命令
根据不同业务选择短链接或者长链接
定期使用 redis-cli --big-keys 检测大 Key
Redis在生产中不得不重视的几个运维问题相关推荐
- 优酷蓝鲸近千节点的Redis集群运维经验总结
http://www.infoq.com/cn/news/2016/08/youku-Redis-nosql Redis是时下比较流行的Nosql技术.在优酷我们使用Redis Cluster构建了一 ...
- 玩转Redis必备的几款运维工具,好用爆了~
大家好,我是不才陈某~,文末送红包 我们在应用 Redis 时,经常会面临的运维工作,包括 Redis 的运行状态监控,数据迁移,主从集群.切片集群的部署和运维. 接下来,我就从这三个方面,给你介绍一 ...
- aws eks_在生产中配置和使用AWS EKS
aws eks 到现在,我们已经完成了向Amazon EKS ( 工作地点)的迁移,并且集群已经投入生产. 过去,我已经写了一些要点的简短摘要,您可以在这里找到. 当系统正在处理实际流量时,我有了一些 ...
- 在生产中配置和使用AWS EKS
到现在,我们已经完成了向Amazon EKS ( 工作地点)的迁移,并且集群已经投入生产. 过去,我已经写了一些要点的简短摘要,您可以在这里找到. 当系统正在为实际流量提供服务时,我有了一些额外的信心 ...
- 用在生产中的裸金属Ironic
与裸金属SIG的成员一起讨论Ironic如何简化裸金属运维人员在日常碰到的许多困难,包括项目概述.项目路线图和Ironic在生产中的使用案例. Ironic概述 红帽高级首席软件工程师Julia Kr ...
- 读书笔记{11} VLAN及其在生产中的应用
1 LAN 简介 LAN,Local Area Network,直译为本地区域网,可能是因为为了方便传播,大家基本上都叫它局域网,既然大家都这么叫,如果我们搞特例那就是不明智了. 局域网这个词的侧重其 ...
- cad在计算机领域的应用论文,CAD技术在生产中的应用(毕业论文).doc
CAD技术在生产中的应用(毕业论文) XXX学校 XX办学点毕业论文 课题名称:CAD技术在生产中的应用 专 业: 班 级: 学 籍 号: 学生姓名: 导师姓名: 提交日期: CAD技术在生产中的应用 ...
- Hibernate:hbm2ddl.auto =在生产中更新?
本文翻译自:Hibernate: hbm2ddl.auto=update in production? 是否可以运行使用hbm2ddl.auto=update配置的Hibernate应用程序来更新生产 ...
- 在生产中使用Java 11:需要了解的重要事项
来源:SpringForAll社区 如果您正考虑更新最新版本的Java,阅读本文以了解有关Oracle Java 11的最重要信息. 如果您及时了解Java社区的新闻,您可能听说Oracle改变了他们 ...
最新文章
- 搭建git for windows服务器(100%可以成功)【转】
- .Net基础体系和跨框架开发普及
- ireport参数传递json_Json传递数据两种方式(json大全)
- Java Servlet 使用slf4j配置log4j
- jquery获取动态表格行号_jquery得到表格当前行数据
- centos怎么编写java_编写的java程序在centos后台运行的方法
- nginx访问静态文件
- Verilog中begin...end和fork....join的区别和用法
- java数据透视表_使用流实现Java数据透视表
- BEEF的搭建与使用
- CentOS7.5 远程桌面设置
- 一个最简单的自定义锁屏应用实现
- MongoDB✧SpringDataMongoDB
- 10个开源电子商务平台
- 请更换备份电池 pos机_POS机报错58终端无效的快速处理方法!
- 怎么更改wifi频段_win10将wifi改成5hz首选频带方法_win10怎样将wifi变为支持5ghz频段-win7之家...
- 服务器RAID配置全程
- Microsoft Store无法显示错误,真正解决!
- MYSQL中,CAST函数的使用规则
- 在Linux中,如何找到并杀掉僵尸进程?
热门文章
- python打包工具 --- pyinstaller
- 【PL/SQL】学习笔记 (9)例外之 no_data_found
- vue中 裁剪,预览,上传图片 的插件
- BZOJ4567 SCOI2016背单词(trie+贪心)
- el 中requestScope和param
- Scrapy Learning笔记(四)- Scrapy双向爬取
- OPW-00001: Unable to open password-file
- (jQuery,SVG)使用jQuery和svg仿QQ地图测距功能(抛砖引玉)
- innerHTMl和确认提示的使用
- MongoDB的集群模式--Replica Set