Monday, December 28, 2015

Redis Caching and AWS

I was reading today about ElastiCache AWS service that currently supports MemCache and Redis implementations

MemCache  is the key Value based caching that is multi threaded and supports the thread or parallel performance based on the cores. Horizontal scaling can be easily done with MemCaching

Redis is a different kind of caching which has lot of in built features that can be programmed through APIs provided. Redis supports Asynchronous replication, has built in persistence and  supports both key value as well as data structures such as sets, lists and hashes. Redis  supports point in time snapshots at regular intervals and also write through persistence ( persist whenever there is a write or update). For more information about Redis persistance, click here

Since Redis data structures cannot be sharded across different instances, we cannot scale horizontally in a cluster  like memcache.  However, we can have multiple clusters with each cluster having a single instance. Architecture for Redis looks very similar to AWS RDS ( Relational Database Service)

The question, I have is , can Redis with inbuilt persistence, be used as Database? It can be if the data model can be fit into the memory . Downside to this approach is that the memory is expensive.  Also, what happens if there is a crash?  As stated above,  Redis can do regular and write through backups as per our RPO and RTO guidelines.

It is nice to see some one addressing the same issue here. 

No comments:

Post a Comment