先弄清楚两点:
- 缓存中的数据,无论做怎么处理,都是有可能丢失的;
- 写到磁盘中的数据,则是可以确定业务处理成功的;
类似微博,这种社交应用,数据是不要求100%不丢失的,所以可以很好的利用缓存来解决高并发的处理问题;
而如果涉及到资金交易,像金融系统或者是电商网站的核心交易模块,数据是不运行有误的,这部分数据,如果从缓存上来考虑兼容高并发,是无法做到安全的,退一步的做法,应该是使用数据库的Sharding方式和流量漏洞过滤的方式来应对高并发的场景。而非核心交易的模块,如购物车,还未确认的订单,可以考虑系统的对错误的容忍度恰当的放到缓存里面,然后通过一定的策略做其他的业务处理,如持久化数据做MapReduce和分析作业。
缓存的设计有哪些套路呢,酷客里面的缓存更新的套路说了常用的设计思路。单靠缓存来解决高并发的数据读写又想做数据的强一致性和可靠性,是没有这样的银弹的,这个时候需要转换一下思路。