缓存

缓存

1、缓存目的是减少db压力,提高数据访问速度,降低服务相应时间,给用户良好的体验。

2、缓存工具:readis、memcached

3、缓存监测工具:zabbix、MemAdmin、Redis-star

4、配置策略

配置策略需要考虑以下维度:业务场景、时效性、粒度、容量、命中率

(1)业务场景

某业务访问量高,或一个读多写少,或并发高的业务可以使用缓存策略。如借贷类APP,从注册、认证、绑卡、充值、提现,还款提醒都需要用户ID、手机号、身份证号等信息,甚至很多服务架构中,直接将用户服务作为一个单独服务。此时可以考虑为用户信息设计缓存,将用户常用的信息包装缓存。

(2)粒度

redis支持字符串、hash散列、list、set、有序集合。(1)中介绍的缓存用户数据,我们可以缓存用户所有信息,或部分信息,或全部信息的集合等方式,可是缓存为了高速,一般存放与内存,而且缓存也是需要更新,否则信息失效导致不准确,当用户信息以list存储,有一个用户信息发生变化,更新会消耗很多资源却不具简洁。所以,缓存粒度也需要按需而定。

(3)时效性

用户某些关键信息是固定的如身份证,那么身份证号具有永久性(不会更新),即缓存后不会失效。对于有定期变更信息,需要根据变更的频率,设置适当的失效时间,过期后失效,或过期后更新。

(4)容量

内存容量相比硬盘十分可贵,设计缓存需要考虑内存使用情况,根据服务选用单台或分布式缓存。redis支持数据持久化到硬盘。

5、命中率

缓存实际效果可以使用命中率反应。命中率=取值成功数/总取值操作数,假设获取用户信息,取了100次,有96次取到值,那命中率=96/100=96%,命中率越高效果越好,可以通过缓存监测工具查看命中率。配置策略中提到的几个因素均会影响命中率,且不是单独影响。如用户缓存策略需考虑:业务中经常用到的用户信息封装存储,根据信息变更频率设置时效时间和更新策略,选取一个合适的容量。         

附:参考

redis 教程    http://www.redis.net.cn/tutorial/3501.html

丁码农         https://mp.weixin.qq.com/s/4AwY0-nT0bBgFBxrCvGwEg

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值