title: Setting up redis and its client applications on same server
body: <p>I'm going through the options for setting up a configuration platform/service which is going to serve configuration to all the consumer client services/applications. The requirement is that this should be set up on a dedicated server. </p>
  
  <p>I was exploring if redis could be one of the possible options to use for supporting complex key-value configuration. If redis is to be set up on a different server than that of the consumer, there will be some network latency involved with the GETs (I'm not <em>that</em> much worried about SETs as they will be very fewer than GETs). Should I be setting up another caching layer on the client machines (e.g. EhCache or something else) to avoid machine-to-machine network latency? Cache sync and invalidation needs to be handled in that case. Also, I've read that redis supports replication, but a slave server (which is the exact copy of the master) on the client service machine would then occupy good amount of memory as redis predominantly uses RAM to store all the data. Also, both of them can then compete for CPU/resources. </p>
  
  <p>Note: Client services/applications are currently deployed on Amazon ec2 medium instance. And a similar one might be used for redis as well.</p>
  
  <p>Please let me know if there are any good alternatives with this architecture or this isn't good at all. Thanks in advance. </p>