我正在研究一个需要从网络数据库加载数据的客户端类.有人建议,向客户端添加标准缓存服务可以提高其性能.
我非常希望不必构建自己的缓存类 – 众所周知,这些提供了常见的失败点.使用其他人开发的类而不是花费大量时间来调试自制的缓存系统会好得多.
Java开发人员有这个:
http://ehcache.sourceforge.net/
它是一个通用的高性能缓存类,可以支持各种存储.它有基于时间的到期和其他垃圾收集方法的选项.它看起来非常好.不幸的是我找不到任何对Python有用的东西.
那么,有人可以建议一个可供我使用的缓存类.我的愿望清单是:
>能够限制缓存中的对象数量.
>能够限制缓存中对象的最大年龄.
> LRU对象expirey
>能够选择多种形式的存储(例如内存,磁盘)
>经过良好调试,维护良好,至少由一个众所周知的应用程序使用.
>良好的表现.
那么,有什么建议吗?
更新:我正在寻找对象的LOCAL缓存.我连接的服务器已经被高度缓存. Memcached不合适,因为它需要Windows客户端和服务器之间的额外网络流量.
更新:
I’m looking for LOCAL caching of objects.
您可以在本地运行memcached并通过localhost访问它.我做过几次这样的事.
除此之外,我能想到的唯一解决方案是django’s caching system.它提供了几个后端和一些其他配置选项.但如果你不使用django,那可能会有点重量级.
更新2:我想作为最后的手段,你也可以使用jython并访问java缓存系统.如果你已经让客户使用CPython,这可能有点难.
更新3:对你有用可能有点晚了,但我以前的雇主使用ZODB来做这件事.它是一个实际的数据库,但其读取性能足够快,使其对缓存很有用.