高并发下的缓存与持久化选择

先弄清楚两点:

  • 缓存中的数据,无论做怎么处理,都是有可能丢失的;
  • 写到磁盘中的数据,则是可以确定业务处理成功的;

类似微博,这种社交应用,数据是不要求100%不丢失的,所以可以很好的利用缓存来解决高并发的处理问题;
而如果涉及到资金交易,像金融系统或者是电商网站的核心交易模块,数据是不运行有误的,这部分数据,如果从缓存上来考虑兼容高并发,是无法做到安全的,退一步的做法,应该是使用数据库的Sharding方式和流量漏洞过滤的方式来应对高并发的场景。而非核心交易的模块,如购物车,还未确认的订单,可以考虑系统的对错误的容忍度恰当的放到缓存里面,然后通过一定的策略做其他的业务处理,如持久化数据做MapReduce和分析作业。

缓存的设计有哪些套路呢,酷客里面的缓存更新的套路说了常用的设计思路。单靠缓存来解决高并发的数据读写又想做数据的强一致性和可靠性,是没有这样的银弹的,这个时候需要转换一下思路。

http://mp.weixin.qq.com/s?src=3&timestamp=1469959496&ver=1&signature=JlKZ0BnHUKnaKGFog3Adu-C2fgC1OAuzs5VWFnwxXGevUAPQNhB1HcFMUgGVdCNcIHamUC8kFt5tbbvmTKiwicCia*sahDW60dIIekKlmFarhyBC8rG2tUDHNLnGtLep50XdUPgKir8-0XUbOjLdghV*0A0RkyTQnbVmidKJjf0=

http://mp.weixin.qq.com/s?src=3&timestamp=1469959496&ver=1&signature=4cN2zbsuTbHDkotZNk6LgGJ3gu7wYAv0j0wN7AM-rNeSa7NZ0OG6*h8mY-PWMMAGDQC4grxu2P20SvzTtlVP6i9lCqtZ1NGYC-qvCNR9YigT26XIRUCkhAfKJ*fkfJe0KfXNKvS22Ta2ZaVhEpuv86pIHbgqq2U3*nHaZz4XjvU=