Is installing multiple redis instances on the server a good idea?

As title says. I'm considering creating a state service farm using redis, and I'd like to handle multiple "regions" - that way, if a service goes down only a single region should be affected. This may seem like a good idea initially, but I'd rather know beforehand if :

  1. Installing multiple side-by side instances of redis is a good idea?
  2. Redis only stores data in RAM?
  3. How much RAM a typical redis instance uses? (I realize this may be a rethorical question, but I'd love some guesstimates)

At Stack Exchange we run multiple instances of Redis on a single server and we have never seen any issues:

[kbrandt@ny-redis01: ~] ps -e -o vsz,cmd | grep redis-server | sort -nr
15943668 /usr/sbin/redis-server *:6382
14966708 /usr/sbin/redis-server *:6379
7878376 /usr/sbin/redis-server *:6380
2692092 /usr/sbin/redis-server *:6384
1855480 /usr/sbin/redis-server *:6383
1002304 /usr/sbin/redis-server *:6381
377072 /usr/sbin/redis-server *:6385
374780 /usr/sbin/redis-server *:6387
 50992 /usr/sbin/redis-server *:6388
 50992 /usr/sbin/redis-server *:6378

Memory usage is really going to depend on how much data you put into each instance. There can also be some fragmentation overhead (you can see the fragmentation ratio with the redis info command). To estimate your capacity you look at "What's the Redis memory footprint?" from the faq. Also be sure to set /proc/sys/vm/overcommit_memory to 1 as stated in that same faq.


  1. As @faker said, that depends on the use case. If you're only looking to cache stuff locally (to the app server), it could work. However, if you're looking to have a shared cache/datastore functionality, I'd go with a decoupled solution. Furthermore, coupling is usually frowned upon as it may inhibit scalability.

  2. Yes - data in Redis is stored and served entirely from RAM. You do have the option, however, to persist data to durable storage.

  3. Redis' process is very lightweight, i.e. < 2MB when loaded. Any RAM consumed above that is for data storage and that depends on multiple factors, including: data volume, data content, your keyspace's "schema" and the data structures that you use.