项目背景
实际上MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,但是随着业务数据量的不断增加,MySQL就遇到了很多问题:
1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。
2.Memcached与MySQL数据库数据一致性问题。
3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。
4.跨机房cache同步问题。
为了解决这些问题那么就应该考虑其他更适合业务处理的产品,所以也涌现出来很多NoSQL产品,如何正确使用好这些产品,最大的发挥其长处,这是我们呀深入思考和研究的问题,归根结底也就是要深入了解产品的定位,在实际应用中扬长避短.
面对这些不同类型的NoSQL产品,我们需要根据我们的业务场景选择最合适的产品。
Redis最适合所有数据in-memory(内存中)的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed(磁盘备份)的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:
1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
2 、Redis支持数据的备份&#