NoSQL最近很火,因为它在K/V存储的优异性能表现,催生出很多产品,比如:Memcached、MongoDB、Redis、TT等等. 然而他们或多或少都有自己的某些缺陷,比如存在单点、数据安全持久化等等。然而这些随着新的技术和思路的在MySQL上面产品化,这些东西会被慢慢取代,MySQL重回她的王者地位。在这之前我说过Memcached会被MySQL+handler socket取代,现在情况有所变化,为了兼容现有大量的Memcache客户端,将handler socket用memcached替换掉,就出现了如下构架:
MySQL+InnoDB with Memcached
MySQL+InnoDB with Memcached 具有大量的优势:可以充分利用现有的memcache client,减少应用程序的变动
解决了memcached不具备的数据存储持久性问题
提供了memcached不具备的crash-safe、acid特性、复查查询的支持、丰富的管理和展示工具
解决了平时单独使用memcached时,cache和数据库数据一致性的问题,提供更高的性能
减少数据冗余,充分利用好内存,降低硬件投入成本
在提供高效的k/v访问的同时,还提供复查的查询功能,比如排序、join等等
总结:MySQL + InnoDB + Memcached 会颠覆很多原有的多层次cache构架,新的构架能提供更高性能和稳定的存储和访问服务,极大的降低开发的复杂度和硬件成本。
另外去年MySQL用户大会上提到的MySQL Cluster+ Memcached,现在MySQL Cluster 7.2已经开始集成memcached,将充分发挥MySQL CLuster设计上的先天优势(k/v + sharding), 目前有测试数据(NDBAPI实现)已经达到 200万+/秒的写性能(8 server),1000,000 rps (读,2 server)。架构图:
MySQL Cluster with Memcached
总结:MySQL Cluster的未来很值得期待。同样我们可以想象,以后系统后台只有MySQL数据库,同时提供sql 和 nosql的功能,降低系统复杂度,降低管理和维护成本,降低开发的复杂度和开发周期及成本, 期待啊……