Memlink 是一个高性能、持久化、分布式的Key-list/queue数据引擎。正如名称中的memlink所示,所有数据都建构在内存中,保证了系统的高性能 (大约是redis几倍),同时使用了redo-log技术保证数据的持久化。Memlink还支持主从复制、读写分离、List过滤操作等功能。
与 Memcached不同的是,它的value是一个list/queue。并且提供了诸如持久化,分布式的功能。听起来有点像Redis,但它号称比 Redis更好,在很多Redis做得还不好的地方进行了改进和完善。提供的客户端开发包包括 c、python、php、java 四种语言。
特点:
* 内存数据引擎,性能极为高效
* List块链结构,精简内存,优化查找效率
* Node数据项可定义,支持多种过滤操作
* 支持redo-log,数据持久化,非Cache模式
* 分布式,主从同步
与Redis区别
redis同样也提供key-list 存储功能,memlink与redis区别有:
* redis比较消耗内存。每个存储节点,在不支持vm的情况下要额外消耗12字节内存,在支持vm的情况下,每个节点额外消耗24字节内存。对于存储上亿条数据来说,额外消耗的内存太大。
* redis redo-log不够完善。redis redo-log机制:每隔一段时间同步磁盘(此期间重启就刚好丢失数据);追加log方式,会使log文件越来越大,而且性能不够优化。
* 主从同步不完善。如果从节点因为网络原因丢失了部分同步数据,需要重新完全获取一份主节点的所有数据。在大数据量的情况下,不太合适。
* 网络处理主事件循环只有一个线程,不能很好的利用多核;同时读写没有分离,没有进行写优先处理。
* list节点没有mask表,不能进行一些属性过滤。
最新版本:
项目主页:http://code.google.com/p/memlink/