views:

78

answers:

3

This question asks for one in java,

what's the best candidate in PHP?

BTW,does the following establish:

distributed key value store == distributed cache

?

+1  A: 

There is Redis with advanced cache manipulation functions:

Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. Redis supports different kind of sorting abilities.

How is Redis supports distributed servers:

Redis supports client-side sharding via consistent hashing. Currently there is no support for fail tolerance nor to add or remove clusters at run time.

Ivan Nevostruev
I never heard that `Memcached` is distributed.
Important to note that Memcached is not persistent, as the original question requested.
Adam Backstrom
Removing memcached
Ivan Nevostruev
BTW, memcached can be used as distributed storage, but it require client side code to choose different server based on some kind of `client_id % number_of_servers` logic.
Ivan Nevostruev
@Ivan Nevostruev ,really? can you elaborate that logic?
Here is article about server id calculation based on *key* value for memcached http://www.lastfm.ru/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clients
Ivan Nevostruev
A: 

use MongoDb or Memcached

Tim Mahy
+1  A: 

Have a look at Cassandra, it is used by Facebook and should be easy to use with PHP.

Jonas