我正在使用FUSE文件系统FUSE .py,并计划使用memcache来存储文件。我希望有少量的memcache空间,这样我就知道哪些文件正在被存储,哪些文件正在被替换。
我知道Memcache有存储特定大小数据的slab。但是有可能只有一个平板吗?例如,有一个5mb的slab,每个页面大小为1mb,这样我最多可以存储5个文件。如果我需要添加第6个,LRU策略将删除文件并为其腾出空间。
基本上我想使用memcache作为文件的缓存,一旦文件从memcache中删除,将更改存储在db服务器中。
不要根据本系统或其他系统可能的实现方式对系统的实现进行假设;您唯一可以依赖的是发布的API文档中的内容,在这种情况下,Google App Engine在条目过期时不提供回调(当条目达到其TTL或由于LRU而被替换时),也不会将它们备份到其他存储系统。
你不应该将memcache用于持久存储,比如文件系统;请考虑以下系统之一来代替持久存储:
- Google Cloud Bigtable - wide-column store (HBase基于Bigtable)
- Google Cloud Datastore -面向文档的存储
- Google Cloud SQL - SQL数据库,顾名思义
- Google Cloud Storage - blob/object Storage
当然,您可以在Memcache中缓存它们的数据,但由于它可能过期,您应该将原始数据存储在更持久的存储系统中,并将经常访问的块/文件/元数据缓存在Memcache中。