需要 PHP 中的分布式键值查找系统
Posted
技术标签:
【中文标题】需要 PHP 中的分布式键值查找系统【英文标题】:Need a distributed key-value lookup system in PHP 【发布时间】:2010-04-09 15:02:14 【问题描述】:This question 在 java 中要求一个,
php 中最好的候选者是什么?
顺便说一句,以下是否成立:
分布式键值存储 == 分布式缓存
?
【问题讨论】:
【参考方案1】:有 Redis 具有高级缓存操作功能:
Redis 是一种高级键值存储。它类似于 memcached,但数据集不是易失性的,值可以是字符串,就像在 memcached 中一样,还可以是列表、集合和有序集合。所有这些数据类型都可以通过原子操作进行操作,以推送/弹出元素、添加/删除元素、执行服务器端联合、交集、集合之间的差异等。 Redis 支持不同种类的排序能力。
Redis 是如何支持分布式服务器的:
Redis 通过一致性哈希支持客户端分片。目前不支持容错,也不支持在运行时添加或删除集群。
【讨论】:
我从来没有听说过Memcached
是分布式的。
重要的是要注意 Memcached 不是持久的,正如原始问题所要求的那样。
顺便说一句,memcached 可以用作分布式存储,但需要客户端代码根据某种client_id % number_of_servers
逻辑选择不同的服务器。
@Ivan Nevostruev,真的吗?你能详细说明这个逻辑吗?
这里是关于基于memcached lastfm.ru/user/RJ/journal/2007/04/10/…的key值计算服务器ID的文章@【参考方案2】:
看看Cassandra,它被Facebook使用,应该很容易与PHP一起使用。
【讨论】:
【参考方案3】:使用 MongoDb 或 Memcached
【讨论】:
以上是关于需要 PHP 中的分布式键值查找系统的主要内容,如果未能解决你的问题,请参考以下文章