Setting up redis and its client applications on same server
architecture, redis
Solution
If they are both EC2 instances in the same region, then I wouldn't worry too much about network latency. I would use an m1large or m1xlarge for redis if you assume you will have a lot of data. Depending on your requirements, a cache may or may not make sense.
I have used redis in EC2 with thousands of transactions per second without any issue.
Problem
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. 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 that 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. Note: Client services/applications are currently deployed on Amazon ec2 medium instance. And a similar one might be used for redis as well. Please let me know if there are any good alternatives with this architecture or this isn't good at all. Thanks in advance.