memcache/php 的最佳实践 - 多 memcache 节点

发布于 2024-10-06 04:21:08 字数 401 浏览 3 评论 0原文

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

这意味着如果我存储示例:“somekey”,“this is the value”,

它将被分割到 3 个内存缓存服务器上。

这是更好的方法吗?或者memcache更多地建立在一对一的关系之上?例如。

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

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

有人可以指出我在这方面的正确方向,并让我知道哪种方式是最好的,或者我是否完全混淆了。

谢谢

So I am working on a web app - that has to be built for scalability. It stores frequent MySQL querys into the cache. I have pretty much everything built and ready to go - but I am concerned on best practices on handling where to cache the data. I've talked to a few people and one of them suggested to split each key/value across all the memcache nodes.

Meaning if i store the example: 'somekey','this is the value'

it will be split across lets say 3 memcache servers.

Is that a better way? or is memcache more built on a 1 to 1 relationship?. For example.

store value on server A till it faults out - go to server B and store there.

that is my current understanding from the research I have done and past experience working with memcache.

Could someone please point me in the right direction in this and let me know which way is best or if I completely have this mixxed up.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

网名女生简单气质 2024-10-13 04:21:08

我会在 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 现在可用。!

-丹尼尔

I would use consistent hashing in php

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

This way if a memcache server goes down, your keys won't be redistributed :)

In my experience memcache servers have been REALLY reliable, and are usually restarted due to OS upgrades and such.

If you don't use consistant hashing, then if a server goes out and comes back, then you may have an old piece of data cached on that server.

IE Memcache servers 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) returns 'abc', because A is now available.!

-daniel

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文