【问题标题】:Memcache global expiration changeMemcache 全局过期更改
【发布时间】:2011-12-23 22:18:04
【问题描述】:

是否可以使用命令行更改 memcache 实例中的所有键/值对?

比如说,我有 10 个 memcache 服务器,它们有键值对,它们都有 30 天到期的对象。但它们不会同时过期,我也不希望它们都同时过期。我想将对象更改为在 10 天内过期。如何进行此更改?

这可能吗?

这可以通过命令行完成吗?我必须为此编写程序吗?

【问题讨论】:

  • Memcache 故意有一个非常简单的过期机制。它是围绕可恢复数据的非常快速缓存而设计的。您的应用程序在做什么需要跨服务器一致的过期时间?
  • @ssamuel 我正在数据源之间迁移数据,并且正在更新一些数据。我希望缓存过期一段时间,然后我希望从新数据源重新填充它。

标签: caching memcached


【解决方案1】:

您可以通过定期触摸值来实现此目的。常见问题解答describes a way to do this

但是,memcache 并不是为此而设计的。你正在做的似乎更像是一个持久缓存场景。如果您喜欢 memcache 语义,MembaseMemcacheDB 提供的解决方案可能更适合您的需求。 许多不同的持久缓存系统也可以做到这一点。

根据您的规格,有时加快数据源的速度可能会比内存缓存提供更好的性能。现代 DMBS 使用合理的访问协议进行大量缓存。这完全取决于您的数据源是什么样的以及您在系统设计中的灵活性。

【讨论】:

    【解决方案2】:

    Memcache 有一个 telnet 接口。然后你可以使用FLUSH_ALLFLUSH_ALL <seconds_to_wait>,如果你是这个意思...

    【讨论】:

    • 很抱歉听到这个消息。我假设您远程登录到那里的服务器并且该命令没有使项目过期?你能提供更多信息吗?
    • 没有这样的假设。我不想刷新整个缓存,你知道刷新一个巨大的缓存会有什么后果吗?
    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多