我正在将缓存从EhCache迁移到Memcached 。只有一个Memcached实例,有没有办法拥有多个缓存(如在EhCache中)?
例如,我想拥有一个“用户”缓存,一个“产品”缓存等......主要原因是能够分别监控和配置每个缓存,并能够单独清除它们太
答案 0 :(得分:4)
通常,这种行为是通过命名空间在memcached中实现的。在单个memcached实例中,一个维护多个名称空间,每个名称空间代表不同的缓存。但是,memcached本身不支持名称空间 - 相反,memcached名称空间是通过为名称标识符(例如memcachedClient.get('products.top10')
)添加前缀来模拟的。一些memcached客户端,如the Python GAE memcached client,为您抽象出这种行为。但是,据我所知,xmemcached没有。
你有两个选择。
XMemcachedClient
周围编写一个瘦包装器,其中包含两处更改:它有一个String namespace
成员作为前缀值,它会覆盖get0()
以应用该前缀。这有点危险,因为它依赖于当前的XMemcached实现。