PHP memcached模块中的一致性哈希是如何工作的?

PHP memcached模块中的一致性哈希是如何工作的?,php,memcached,consistent-hashing,Php,Memcached,Consistent Hashing,虽然我在互联网上搜索了很多,但我还是无法回答一些关于memcached的问题 PHP的memcached模块使用的一致哈希算法是什么 它的设置是什么(即,它在环上添加了多少次服务器?) 一致性哈希数组(连续环)是否缓存在某个位置,或者在每次脚本执行时重新计算?如果是后者,是否会导致性能问题/计算能力浪费 谢谢 PHP的memcached模块使用的哈希算法是什么 根据您的需要有不同的。有关选项,请参阅本页:您可以对池中的实例计数使用标准的模运算(DISTRIBUTION\u MODULA),也可以

虽然我在互联网上搜索了很多,但我还是无法回答一些关于memcached的问题

  • PHP的memcached模块使用的一致哈希算法是什么
  • 它的设置是什么(即,它在环上添加了多少次服务器?)
  • 一致性哈希数组(连续环)是否缓存在某个位置,或者在每次脚本执行时重新计算?如果是后者,是否会导致性能问题/计算能力浪费
  • 谢谢

  • PHP的memcached模块使用的哈希算法是什么
  • 根据您的需要有不同的。有关选项,请参阅本页:您可以对池中的实例计数使用标准的模运算(
    DISTRIBUTION\u MODULA
    ),也可以使用一致的散列密钥分发算法(
    DISTRIBUTION\u consistent
    )。如果需要,还可以在项键本身上为哈希算法提供选项(
    hash\uuu

    如果您要经常将实例放入池中或从池中取出,那么您应该看看一致性散列方法。我从未实际使用过它,可能也应该使用它,因为它可以减轻服务器故障的影响,而且这样做不会影响可测量的性能。。。事后看来,这似乎是不需要动脑筋的。认为memcached扩展可能会将默认值更改为该值。我已经读到,使用一致的散列,您可以期望丢失10-25%的密钥(或者更少,如果池中有更多服务器),而使用默认方法,可能会接近100%的丢失

    更具体地说,一致性算法基于。那里的自述很好地总结了它产生的原因和工作原理

  • 它的设置是什么(即,它在环上添加了多少次服务器?)
  • 我不确定我是否明白你在问什么。每台新服务器向连续体添加了多少个“记号”?我认为我们需要更多地关注ketama lib——猜测它试图在性能和更少的关键失误之间取得平衡

  • 哈希数组(连续体环)是缓存在某个地方,还是在每次脚本执行时重新计算?如果是后者,是否会导致性能问题/计算能力浪费
  • 老实说,不是100%肯定。虽然这可能是一个浪费的计算,但似乎仍然很琐碎——md5算法和一些算法。我只能说Memcached非常快。如果您需要高可用性、持久性分布式存储,您可以考虑使用couchDB之类的其他产品。Memcached是一个非常擅长于它所做的。。。内存中“小”值的键/值存储

    您可能会喜欢这些文章: