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在生产中不得不重视的几个运维问题相关推荐

  1. 优酷蓝鲸近千节点的Redis集群运维经验总结

    http://www.infoq.com/cn/news/2016/08/youku-Redis-nosql Redis是时下比较流行的Nosql技术.在优酷我们使用Redis Cluster构建了一 ...

  2. 玩转Redis必备的几款运维工具,好用爆了~

    大家好,我是不才陈某~,文末送红包 我们在应用 Redis 时,经常会面临的运维工作,包括 Redis 的运行状态监控,数据迁移,主从集群.切片集群的部署和运维. 接下来,我就从这三个方面,给你介绍一 ...

  3. aws eks_在生产中配置和使用AWS EKS

    aws eks 到现在,我们已经完成了向Amazon EKS ( 工作地点)的迁移,并且集群已经投入生产. 过去,我已经写了一些要点的简短摘要,您可以在这里找到. 当系统正在处理实际流量时,我有了一些 ...

  4. 在生产中配置和使用AWS EKS

    到现在,我们已经完成了向Amazon EKS ( 工作地点)的迁移,并且集群已经投入生产. 过去,我已经写了一些要点的简短摘要,您可以在这里找到. 当系统正在为实际流量提供服务时,我有了一些额外的信心 ...

  5. 用在生产中的裸金属Ironic

    与裸金属SIG的成员一起讨论Ironic如何简化裸金属运维人员在日常碰到的许多困难,包括项目概述.项目路线图和Ironic在生产中的使用案例. Ironic概述 红帽高级首席软件工程师Julia Kr ...

  6. 读书笔记{11} VLAN及其在生产中的应用

    1 LAN 简介 LAN,Local Area Network,直译为本地区域网,可能是因为为了方便传播,大家基本上都叫它局域网,既然大家都这么叫,如果我们搞特例那就是不明智了. 局域网这个词的侧重其 ...

  7. cad在计算机领域的应用论文,CAD技术在生产中的应用(毕业论文).doc

    CAD技术在生产中的应用(毕业论文) XXX学校 XX办学点毕业论文 课题名称:CAD技术在生产中的应用 专 业: 班 级: 学 籍 号: 学生姓名: 导师姓名: 提交日期: CAD技术在生产中的应用 ...

  8. Hibernate:hbm2ddl.auto =在生产中更新?

    本文翻译自:Hibernate: hbm2ddl.auto=update in production? 是否可以运行使用hbm2ddl.auto=update配置的Hibernate应用程序来更新生产 ...

  9. 在生产中使用Java 11:需要了解的重要事项

    来源:SpringForAll社区 如果您正考虑更新最新版本的Java,阅读本文以了解有关Oracle Java 11的最重要信息. 如果您及时了解Java社区的新闻,您可能听说Oracle改变了他们 ...

最新文章

  1. 搭建git for windows服务器(100%可以成功)【转】
  2. .Net基础体系和跨框架开发普及
  3. ireport参数传递json_Json传递数据两种方式(json大全)
  4. Java Servlet 使用slf4j配置log4j
  5. jquery获取动态表格行号_jquery得到表格当前行数据
  6. centos怎么编写java_编写的java程序在centos后台运行的方法
  7. nginx访问静态文件
  8. Verilog中begin...end和fork....join的区别和用法
  9. java数据透视表_使用流实现Java数据透视表
  10. BEEF的搭建与使用
  11. CentOS7.5 远程桌面设置
  12. 一个最简单的自定义锁屏应用实现
  13. MongoDB✧SpringDataMongoDB
  14. 10个开源电子商务平台
  15. 请更换备份电池 pos机_POS机报错58终端无效的快速处理方法!
  16. 怎么更改wifi频段_win10将wifi改成5hz首选频带方法_win10怎样将wifi变为支持5ghz频段-win7之家...
  17. 服务器RAID配置全程
  18. Microsoft Store无法显示错误,真正解决!
  19. MYSQL中,CAST函数的使用规则
  20. 在Linux中,如何找到并杀掉僵尸进程?

热门文章

  1. python打包工具 --- pyinstaller
  2. 【PL/SQL】学习笔记 (9)例外之 no_data_found
  3. vue中 裁剪,预览,上传图片 的插件
  4. BZOJ4567 SCOI2016背单词(trie+贪心)
  5. el 中requestScope和param
  6. Scrapy Learning笔记(四)- Scrapy双向爬取
  7. OPW-00001: Unable to open password-file
  8. (jQuery,SVG)使用jQuery和svg仿QQ地图测距功能(抛砖引玉)
  9. innerHTMl和确认提示的使用
  10. MongoDB的集群模式--Replica Set