【问题标题】:best practice with memcache/php - multi memcache nodesmemcache/php 的最佳实践 - 多个 memcache 节点
【发布时间】:2011-05-21 17:41:09
【问题描述】:

所以我正在开发一个 Web 应用程序 - 必须为可扩展性而构建。它将频繁的 MySQL 查询存储到缓存中。我已经构建了几乎所有东西并准备就绪 - 但我担心处理数据缓存位置的最佳实践。我和几个人谈过,其中一个人建议将每个键/值拆分到所有 memcache 节点。

如果我存储示例的含义:'somekey','this is the value'

它将被分成 3 个内存缓存服务器。

这是更好的方法吗?还是 memcache 更多地建立在 1 对 1 的关系上?例如。

在服务器 A 上存储价值直到它出现故障 - 转到服务器 B 并存储在那里。

这是我目前对我所做的研究和过去使用 memcache 的经验的理解。

谁能指出我正确的方向,让我知道哪种方式最好,或者我是否完全混淆了。

谢谢

【问题讨论】:

    标签: php memcached scalability


    【解决方案1】:

    我会在 php 中使用一致的散列

    http://php.net/manual/en/memcached.constants.php

    这样,如果 memcache 服务器出现故障,您的密钥将不会被重新分配 :)

    根据我的经验,memcache 服务器非常可靠,并且通常由于操作系统升级等原因重新启动。

    如果你不使用一致性哈希,那么如果一个服务器出去又回来,那么你可能在该服务器上缓存了一条旧数据。

    IE Memcache 服务器 A、B

    A: set key = 1234, value = 'abc', expires = 1 day
    B:
    after a time
    A: vanishes
    B: get key = 1234
       returns nothing
    B: set key = 1234, value = 'def', exipres = 1 day
    after more time
    A: comes back!
    

    get_key(1234) 返回 'abc',因为 A 现在可用。!

    -丹尼尔

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多