创的技术博客
C++对我而言就是有STL带class能处理多态,继承的C.
ccache(common cache)是一个使用共享内存实现的cache静态库,在节点数据不足时采用LRU算法进行节点的淘汰.
与memcache的区别在于,首先memcache是一个完整的server程序,不仅有cache的处理操作,还需要监听及处理客户端的操作请求,而ccache只是一个静态库,只关心cache的处理操作;其次,memcache采用了内存去管理数据,程序一旦停止,其中的数据全部丢失,而ccache采用了mmap的方式去管理数据,也就是每个cache都用一个与之对应的文件,一定程度上保证了数据不至于在程序停止的时候丢失;第三,memcache实现了对不定长key和data的支持,而cache目前(version 0.1)只支持定长的key和data,也就是同一个cache只能管理一个类型的key和data.

当前的版本(version0.1)采用hash-list的形式管理数据,LRU算法在节点数据不足时进行淘汰数据.
今后的版本需要完成的主要功能:
1)实现对不定长key和data的处理支持.
2)降低锁粒度,目前ccache在对数据进行操作时,都是对cache全局加锁,以后希望能做到降低这个加锁的粒度,使效率更高.
3)加入hash-rbtree的形式管理数据.

test/testcache.c是一个演示如何使用ccache的程序,目前仅在多进程的情况下进行测试,由于我本人对多线程不太熟悉,所以没有做多线程情况下的测试.
另外,由于使用了线程锁,所以在编译的时候需要链接pthread库.

项目地址:http://code.google.com/p/commoncache/
(注:请下载其中的ccache0.1.rar文件包,原先的cache.rar有一些问题)
posted on 2008-03-24 11:20 阅读(1675) 评论(6)  编辑 收藏 引用 所属分类: Linux/Unixccache
Comments
  • # re: 发布我的开源cache库ccache[未登录]
    ngn999
    Posted @ 2008-03-24 12:24
    我是一个初学者 ,下下来看看, 学习!  回复  更多评论   
  • # re: 发布我的开源cache库ccache
    cppexplore
    Posted @ 2008-03-24 12:32
    顶下!
    先下来慢慢研究,以后用的着,呵呵  回复  更多评论   
  • # re: 发布我的开源cache库ccache
    酷勤网
    Posted @ 2008-03-24 13:13
    缓存丢失关系不是很大吧,大家更关系性能,不知道有没有比较测试?呵呵  回复  更多评论   
  • # re: 发布我的开源cache库ccache
    tangfl
    Posted @ 2008-03-24 15:45
    开源请使用 zip, 7z 或者 gz,bz2 等格式提供源代码包,请勿使用转有格式 rar  回复  更多评论   
  • # re: 发布我的开源cache库ccache[未登录]

    Posted @ 2008-03-24 15:55
    @tangfl
    谢谢建议!下个版本就转用这些格式.
      回复  更多评论   
  • # re: 发布我的开源cache库ccache
    完美世界私服
    Posted @ 2008-03-24 17:58
    http://www.wmsifu.cn  回复  更多评论   

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]