Which Key/Value Store Is the Most Promising/Stable

Which key/value store is the most promising/stable?

Which do you recommend, and why?

I recommend Redis. Why? Continue reading!!

Which one is the fastest?

I can't say whether it's the fastest. But Redis is fast. It's fast because
it holds all the data in RAM. Recently, virtual memory feature was added but still all the keys stay in main memory with only rarely used values being swapped to disk.

Which one is the most stable?

Again, since I have no direct experience with the other key-value stores I can't compare. However, Redis is being used in production by many web applications like GitHub and Instagram, among many others.

Which one is the easiest to set up and install?

Redis is fairly easy to setup. Grab the source and on a Linux box run make install. This yields redis-server binary that you could put it on your path and start it.

redis-server binds to port 6379 by default. Have a look at redis.conf that comes with the source for more configuration and setup options.

Which ones have bindings for Python and/or Ruby?

Redis has excellent Ruby and Python support.

In response to Xorlev's comment below: Memcached is just a simple key-value store. Redis supports complex data types like lists, sets and sorted sets and at the same time provides a simple interface to these data types.

There is also make 32bit that makes all pointers only 32-bits in size even on 64 bit machines. This saves considerable memory on machines with less than 4GB of RAM.

Which key-value store has decent twisted API (nonblocking)?

You could also Redis, with https://github.com/deldotdr/txRedis. redis is super fast, the only inconveninet is that it is memory based, meaning that your data has to fit in memory.

Advantages of using key-value store for URL shortener?

Databases like redis are optimized for storing lots of small values (such as links and their short urls) because they are loaded up into memory (ram). This means when a call is made to redis it reads data from ram (faster) instead of the hard drive (slower).

EDIT:

If you would like to learn more, this is a great writeup of the advantages and shortcomings of the top no-sql databases. Definitely a great reference.

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

Is there a business proven cloud store / Key=Value Database? (Open Source)

MongoDB is another option which is very similar to CouchDB, but using query language very similar to SQL instead of map/reduce in JavaScript. It also supports indexes, query profiling, replication and storage of binary data.

It has huge amount of documentation which might be overwhelming at fist, so I would suggest to start with Developer's tour

Which key:value store to use with Python?

That mostly depends on your need.

Read Caveats of Evaluating Databases to understand how to evaluate them.

No-SQL Database for large values

We are now using MongoDB, as it supports large binary values, is very popular and has a large user base. Maybe we are going to switch to another store, but currently it looks very good!

Redis, trying to figure out best way to store data in order to display it paginated

You can save your data as key-value pairs, and use a sorted to record the order of each key inserted, i.e. use a monotonically increasing counter as the score of the sorted set. So that newly added keys will always be put at the end. Wrap the logic into a Lua script:

local key = KEYS[1]
local val = ARGV[1]

redis.call("SET", key, val)

local score = redis.call("INCR", "score")

redis.call("ZADD", "pagination", "NX", score, key)

Then you can use ZRANGE to do pagination: ZRANGE pagination 0 10



Related Topics



Leave a reply



Submit