就运维来说,个人觉得需要做好
1. 针对关键指标,如内存使用量、主备延时、慢查询等做好监控和告警
2. 定期进行巡检,发现潜在问题,如bigkey、热key的优化,参数配置项是否可优化
抛开运维,前期的架构设计以及良好的开发规范更显重要
*针对Redis,其实与其他库在运维层面也没太大差异,通常可以从以下方面入手:
1、从全局角度,针对核心指标项进行监控
2、从安全角度,一方面中间件固有的层面,比如未授权漏洞等;另一层面操作层面,尽可能禁用各种奇葩操作,例如keys 为代表的线上命令
3、从性能角度,关注slow log等相关事件
当然,其他方面,例如基本的架构部署拓扑、缓存失效、分布式锁及应用调用等方面也可以多关注
1、Redis的AOF机制,是会出现磁盘空间双倍的,所以计算磁盘空间的时候一定考虑
2、Redis的数据同步高可用机制是主从,服务高可用可以用keepalive或者用三节点的 sentinel 集群
3、Redis的单库大小要控制,根据我们经验推荐50G大小为上限
4、Redis是个单核的内存数据库,所以建议一台物理服务器部署多实例的方式使用好处理器资源
5、Redis在做AOF的时候需要依赖IOPS能力的强弱,建议配置SSD固态硬盘
6、Redis的KEY设计要控制大小,会决定了Redis实例的吞吐量
7、监控关注Redis设置的内存大小是否超过了预警值、IOPS等。
收起