Xixibase是一个高性能,跨平台的分布式缓存系统。Xixibaseserver采用C++实现,底层网络库采用的是BoostAsio。
Xixibase主要特点:1.实现'LocalCache'功能,当客户端打开'LocalCache'选项,客户端可以将数据同时存储在Server端和本地,并且保证本地数据和Server端的数据的一致性。当Server端的数据被更新、删除或者过期,本地的数据会立即被删除,下次再对该数据的访问,请求会直接到达Server。'LocalCache'的优点: a.极大地提高了性能:特别是对那些读操作远远大于写操作的数据,可以提供1000万以上的TPS.参考:https://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html b.提高了应用的服务质量和用户体验:在'LocalCache'命中的情况下,请求不需要通过网络到远程CacheServer上查询,减少了总体的处理的时间,提高用户体验。 c.降低了CacheServer的压力,原先需要10台CacheServer,现在可能只要5台就够了。可降低成本,保护环境。 d.降低网络流量,减少网络设备的成本。 e.提高整个Cache系统的总体吞吐量。综合a,c,d三点,系统的总体吞吐量会得到极大的提升。
2.支持虚拟化,采用分Group的方法,不同的应用可以使用不同的GroupID,这样当不同的应用在访问同一个CacheServer时,不会相互干扰。 a.GroupID类似与命名空间,每个应用不需要考虑:某个Key是否会和其它应用的Key冲突。 b.当某个应用要清空自己相关的Cache,不需要一个Key一个Key的去Delete,可以直接调用Flush,不用担心Flush会影响其它应用的数据。 c.可以对每个Group单独统计读写、存储的信息。
3.支持'MultiAPI',如multiGet,multeUpdate,multiDelete。测试表明'MultiAPI'在提升性能方面,非常明显。参考:https://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html
4.超高性能.无论'LocalCache'还是'MultiAPI'都在不同方面,极大地提升了性能。
5.跨平台,Xixibaseserver由C++实现,底层网络库采用的是BoostAsio。理论上,只要BoostAsio支持的平台,Xixibaseserver都可以支持。目前,已经测试了Linux,Windows,Mac。
6.部分地支持HTTP协议,可以直接在浏览器上访问XixibaseServer。我们可以使用JavaScript非常方便地访问XixibaseServer。再加上Xixibase的LocalCache功能,将极大地减少Server的压力,提升用户的体验。
性能:读写TPS:150,000以上
启动LocalCache高命中情况下,读TPS:10,000,000以上。
MultiAPI,TPS:不同条件下,差异较大,详情参考一下链接:
PerformanceBenchmark:https://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark2.html
和Memcached的几个Client比较:https://xixibase.googlecode.com/svn/tags/xixibase-0.2/benchmark/java/benchmark.html
项目:
https://code.google.com/p/xixibase/包含:XixibaseServer和XixibaseJavaClient
目前Client只实现了JavaClient,欢迎有兴趣的朋友可以实现其它平台的Client。关于XixibaseJavaClient的使用,test包里有几个例子,大家可以参考一下。
有任何问题、建议或者发现Bug可以联系本人。
评论