Redis规范

Redis开发规范

1. 标准化key的格式

  • 便于查看、统计、排错。

    具体的命名规则可以根据实际情况定义,key名可以使用“系统名:表名:查询字段名:查询字段值:所需要的列名”,如“cif:user:userid:999:username”。

2. 存储的key一定要设置过期时间

  • 目前,我们将redis定位成缓存数据库,存放的key必须设有超时时间。

    因为若不设置,这些Key会一直占用内存不释放,造成极大的浪费,而且随着时间的推移会导致内存占用越来越大,直到达到服务器内存上限。另外Key的超时长短要根据业务综合评估,而不是越长越好。

3. 冷热数据分离

  • 根据业务只将高频热数据存入redis。

    其他一些地频冷数据可以存入mysql、es、mongodb等其他数据库中。

    另外,redis仅提供非核心业务数据存储,并且只用作cache。

4. 不同业务可以分开存储

  • 尽量不要把所有业务放入一个实例。

    Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务。

5. 禁止使用keys、flushall、hmgetall等命令

  • 该系列操作效率极低。

    redis是单线程,该命令一旦执行会严重阻塞线上其它命令的正常请求,而且在高QPS情况下会直接造成Redis服务崩溃。类似需求可以用scan命令代替。

6. 限制单个value的大小

  • 单个value必须小于1M。

7. 大文本数据一定要压缩后存储

  • 大文本数据必须先压缩再存储。

    大文本数据存入Redis,除了带来极大的内存占用外,在访问量高时,很容易就会将网卡流量占满,进而造成整个服务器上的所有服务不可用,并引发雪崩效应,造成各个系统瘫痪。

8. 不用select功能做多db区分

  • 统一使用db0。

    不要通过select db频繁切换数据分区,容易影响使用效率。业务量大的话,可以增加新的实例集群,达到分流目的。

9. 需要开启秘钥认证

  • 客户端连接时需要使用-a。

    开启密码认证,加强redis使用安全。

10. 合理使用不同的数据结构类型

  • 按实际也无需求去选择相应的数据结构类型。

    String可以用作普通的K-V、计数类;Hash可以用作对象如商品、人员等,包含较多属性的信息;List可以用作消息队列、关注列表等;Set可以用于推荐;Sorted
    Set可以用于排行榜等。

参考链接 :

Redis规范
https://mp.weixin.qq.com/s/zvGrG5HejDIxMQaton6BkA

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值