数据库
首页 > 数据库> > 阿里内部强制执行的redis使用规范,违者绩效直接3.25

阿里内部强制执行的redis使用规范,违者绩效直接3.25

作者:互联网

前言

目前互联网大厂大量使用redis、pika作为后端缓存、存储,但是存在存储选型不慎重、结构规划不合理、命令使用不规范的现象,继而造成系统性能达 到瓶颈、活动高峰系统可用性下降、dba可运维难度大大增加。所以就有了这份规范,从源头规范redis使用,避免系统运行过程中出现上述 问题。

黑色粗体代表需要关注,红色字体代表特别需要关注。

存储选型

结构规划

1. key名设计规范

比如: 当前redis内存暴涨,通过高频key前缀可以轻易的区分出是那个系统的那个模块在频繁操作,快速定位问题。

例如: 不要包含特殊字符

反例: 包含空格、换行、单双引号以及其他转义字符

2. value设计规范

2. 容量预估

命令使用

1. 命令使用基本原则

2. 关注O(N)命令中N的数量

例如: hgetall、lrange、smembers、zrange、sinter等并非不能使用,但是需要明确N的值。有遍历的需求可以使用hscan、sscan、zscan代替。

3. 禁用命令

禁止线上使用keys、flushall、flushdb、monitor、save、bgsave等,通过redis的rename机制禁掉命令,或者使用scan的方式渐进式处理。

缓存db数据一致性规范

必须采用延时双删策略,具体操作如下:

  1. 写数据库
  2. 删除缓存
  3. 同步延时或者订阅db的binlog异步延时再次删除缓存

    伪代码示例:
public void write(String key,Object data){
  //写db
  db.updateData(data);
  //同步删除缓存
  redis.delKey(key);
  //延时500ms
  Thread.sleep(500);
  //再次删除缓存
  redis.delKey(key);
}

正文end

往期精彩回顾

阿里内网一位p7大佬关于“限流”的分享(仅限小范围传播)
刷完这些题目,成功收割了阿里,美团,字节等大厂offer
后端服务实战之性能优化
聊聊亿级数据下Mysql数据库的分库分表方案

粉丝福利

福利一:

长按扫码关注下方二维码,回复「后端爱码士」四个字,即可领取后端技术资料包(由号主(阿里p7)和另外四位BAT等互联网大厂技术专家级朋友倾力总结,包括java并发,mysql,redis,kafka,zookeeper原理以及面试套路等)
在这里插入图片描述

福利二:

长按扫描下方二维码,加号主微信,然后将本文转发朋友圈,攒够30个赞,截图反馈给号主,就能获得如下福利:

标签:缓存,过期,db,redis,违者,3.25,key,使用
来源: https://blog.csdn.net/weixin_52161584/article/details/112056925