Redis 运维规范_运维管理规范
三、运维管理规范
1、密码认证
云上 Redis 的权限控制:账号管理+白名单设置+阿里云子账号权限。对于线下 Redis 可以通过设置密码和 bind 参数文件控制访问。
2、合理设置备份策略
Redis 支持 RDB 和 AOF 两个备份策略。可以通过合理设置备份策略以较小的性能开销保证数据可靠性和性能。
3、避免 DB 重用
避免多个应用使用同一个 Redis 实例,尤其需要避免将同一 Redis 实例同时用作高速缓存和内存数据库业务。带来的影响例如针对某个业务淘汰策略设置、产生的慢请求或执行 FLUSHDB 命令影响将扩散至其他业务。
4、设置合理的过期淘汰策略
云数据库 Redis 默认逐出策略为 volatile-lru ,即内存满后只从设置失效(expire set)的 Key 中选择最近最少使用的 Key 进行删除。
线下 Redis 默认逐出策略为 noeviction ,即内存满后不会剔除任何数据,拒绝所有写入操作并返回客户端错误信息"(error) OOM command not allowed whenused memory",此时 Redis 只响应读操作;
建议按照业务需求合理设置 key 的淘汰策略。
当 Redis 作为缓存使用的时候,推荐使用 allkeys-lru 淘汰策略。该策略会将使用频率最低的 Key 淘汰。默认情况下,使用频率最低则后期命中的概率也最低,所以将其淘汰
当 Redis 作为半缓存半持久化使用时,可以使用 volatile-lru。但因为 Redis 本身不建议保存持久化数据,所以只作为备选方案。
5、合理配置连接池
适当使用长连接操作 Redis。频繁的短连接会导致 Redis耗费大量时间在连接的创建和断开上,并且TCP三次握手和四次挥手也会增加访问延迟。在使用长连接时需要注意设置合理的参数,连接数不能过多,长时间不操作 Redis 时要有释放连接资源的机制
6、增加熔断功能
对于高并发场景,建议客户端添加熔断逻辑功能,例如:netflix、hystrix。Redis 客户端的熔断器实时检测集群节点,当某一个 Redis 节点出现异常,便不再请求有异常的 Redis 节点,从而避免单个节点的故障导致整体系统的雪崩