Before understanding this service, it is essential to know one of the core concepts involved in this- Caching. It can be defined as a technique with the help of which very frequently required/accessed files/data (images, web pages) is stored in a temporary memory location on the server. Caching is used in most of the applications and one of the best use-case for this is applications that are read-intensive.
The ultimate goal of applications and websites is to serve user requests in a quick span of time, by maintaining the speed and performance of the application. This is when Amazon ElastiCache comes into the picture.
It is a web caching service which is offered by Amazon as a part of their web services. It can be visualized as a caching layer, which is used by applications to serve users requests (Most of these responses would be data which is stored in the temporary location since it is very frequently accessed or required).
ElastiCache provides support to run in conjunction with Redis or Memcached based caching. Let us look at both of them.
This basically means memory cached. It stores data in the memory, like Redis does, and implements high-performance caching. It implemented the LRU (Least Recently Used) algorithm. It is open-source and scalable, and delivers responses in sub millisecond of time. The only difference between Memcached and Redis is that Memcached is a distributed cache service, which is used with simple applications, since it is a simple model itself.
It is multi-threaded, meaning it supports processing on multiple cores, thereby handling more operations at every point in time, by scaling the compute capacity upwards. Since it used for simpler applications, Memcached doesn’t support the following features, which are present in Redis:
Every node has an endpoint which is essential since it helps recover data when necessary.
ElastiCache is used as a Caching-as-a-service which is an offering from Amazon. Amazon provides support to set-up, manage and scale distributed in-memory environment which is implemented in the cloud (Redis and Memcached). The advantage of using Amazon services is that it helps the user avoid the complications behind deploying and managing such an environment.
ElastiCache improves the performance of applications by providing highly reliable solutions during critical production application deployments.
|Redis cluster will have a single node.||Memcached has multiple nodes.|
|This single node is the master node.||Memcached is distributed, hence it has nodes in multiple availability zones.|
|No data partitioning allowed, only replication.||Data can be partitioned across every node.|
|Provides back-up and restoration ability because the nodes can be replicated.||Nodes can be added or removed when required.|
|It implements publisher-subscriber model, which means client is well aware of the operations going on in the server.||Database can be a cache object, and this is handled well by Memcached service.|
In all, ElastiCache is a service which manages, monitors, and supports operating of clusters and their caching in the cloud. It provides a pay-as-you-go model, which means the user only pays for what they use and there are no extra or hidden costs involved. It is highly recommended for applications that are required to have very less response time.
In this post, we understood the meaning and significance of caching and Amazon’s caching service- ElastiCache. We also saw how Redis and Memcached services can be used to work on different requirements.