5

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

例如,我想要一个“用户”缓存、一个“产品”缓存等......主要是为了能够单独监控和配置每个缓存,并且能够单独清除它们。

4

1 回答 1

4

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

你有两个选择。

  • 手动为您使用的每个键添加前缀。
  • 编写一个XMemcachedClient带有两个更改的瘦包装器:它有一个String namespace用作前缀值的成员,并且它覆盖get0()以应用该前缀。这有点危险,因为它依赖于当前的 XMemcached 实现。
于 2012-06-07T17:04:56.727 回答