服务端缓存

笔者工作中处理过包括视频、图片和业务元数据在内的cache处理,也遇到了一些实实在在的很常见的坑,还有一些线上处理经验。

缓存使用遇到的坑
  • 当需要更新数据时,须优先更新数据源,再更新cache。否则先del cache可能会造成,此时读请求cache miss后读到脏数据。
  • 使用redis的INCR、SADD、HSET、zadd等操作前,须先expire判断该key是否存在。否则可能会因为key过期导致错误的value。
  • 如果存图片或小视频等数据,比如大于100k的value,redis的性能是下降比较厉害的,优先存memcache。再大一些的比如1M以上的,建议放其他的缓存系统,比如couchbase、groupcache等。
一些经验
  • cache节点的部署,尽量跨机器,多节点。可以避免cache节点挂掉而导致回源对db的冲击。另一方面也能避免个别key过热而影响整体业务。
  • cache的监控,除了日常的资源监控,还要包括命中率、会不会有过热的key等。特别热门的大key要做冗余存储。
  • 特别重要的数据同时量不是特别巨大,可以做localcache,比如放到内存里。可以保证系统更高的可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值