由于最好的做法是将经常在单个服务器上(使用multiGet)检索的相关密钥分组,以获得最佳性能,因此,对于为实现此目的而构建的客户机函数所使用的隐式机制,我有几个问题。
我已经看到了两种使用libmemcache (具体地说是php)为相同目的服务的不同方法。第一种也是最明显的方法是使用getByKey/setByKey将密钥映射到服务器,第二种方法是使用选项OPT_PREFIX_KEY (在memcached::_construct下的php文档中有一个简单的示例),该示例根据文档“用于为项目键创建‘域’”。第二种方法的警告是,它只能在每个实例的基础上设置,这可能是好事,也可能不是好事。
所以,除非我完全搞错了,而且这两种方法实际上并没有达到相同的目的,这是否明显有利于与另一种方法并行不悖?
在我讨论这个话题时,我的另一个问题是:在一贯的散列场景中,将密钥映射到服务器有什么意义?我假设如果一个节点失败了,那么可以简单地将freeform键映射到一个新服务器上,而不会出现任何问题。
谢谢!
发布于 2012-05-18 09:51:43
如果这些键几乎总是一起检索,那么您可能希望将它们缓存在一个单独的键/值对中,例如,通过对键进行排序和连接,并将序列化为JSON或类似格式的字典的值存储起来。
回到你的问题:
过早优化是所有邪恶
的根源
https://stackoverflow.com/questions/7047906
复制相似问题