对于我正在做的几个项目,我需要一个持久的键值存储(类似于memcache)。理想情况下,它将作为服务器运行;它需要真正高效。我知道memcachedb是存在的,但我想自己编写它,因为后面会有很多自定义功能需要包括在内。我可能会用C++ (如果有很好的理由的话,也可能是C或Java )来写这篇文章。
我是否应该考虑数据库实现(B树、索引等)或者这对于这种工作来说是不必要的?将大部分内容存储在磁盘上,但能够快速访问它,并利用内存进行缓存的好方法是什么?
谢谢。
发布于 2009-05-15 20:08:48
有很多键值存储,从久经考验的BDB到hip的Tockyo Cabinet。如果您必须实现自己的代码,我建议您查看Varnish源代码,特别是Architecture页面。
发布于 2009-05-15 19:46:55
我真的非常鼓励您重新考虑并使用第三方实现。
如果您想要有许多不属于您的域的问题,那么下一步正确的选择是研究数据库实现技术,比如B+Trees。
发布于 2009-05-15 19:50:26
不要重新发明自行车。
您将成为存储的用户。也就是说,您主要关注的是业务逻辑,可能是UI,而不是DB功能的细节。把它留给DB实现者吧。专注于你的主要任务。
例如,尝试使用HBase (类似于Google Bigtable)。
https://stackoverflow.com/questions/870441
复制相似问题