Memcached中的多个缓存

时间:2012-06-07 15:44:56

标签: java caching memcached

我正在将缓存从EhCache迁移到Memcached 。只有一个Memcached实例,有没有办法拥有多个缓存(如在EhCache中)?

例如,我想拥有一个“用户”缓存,一个“产品”缓存等......主要原因是能够分别监控和配置每个缓存,并能够单独清除它们太

1 个答案:

答案 0 :(得分:4)

通常,这种行为是通过命名空间在memcached中实现的。在单个memcached实例中,一个维护多个名称空间,每个名称空间代表不同的缓存。但是,memcached本身不支持名称空间 - 相反,memcached名称空间是通过为名称标识符(例如memcachedClient.get('products.top10'))添加前缀来模拟的。一些memcached客户端,如the Python GAE memcached client,为您抽象出这种行为。但是,据我所知,xmemcached没有。

你有两个选择。

  • 为您使用的每个密钥手动添加前缀。
  • XMemcachedClient周围编写一个瘦包装器,其中包含两处更改:它有一个String namespace成员作为前缀值,它会覆盖get0()以应用该前缀。这有点危险,因为它依赖于当前的XMemcached实现。