├── tapjoy.png ├── addingttl.png ├── expedia.png ├── overview.png ├── summary.png ├── lazyloading.png ├── ticketleap.png ├── writethrough.png ├── elasticacheworking.png └── README.md /tapjoy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/tapjoy.png -------------------------------------------------------------------------------- /addingttl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/addingttl.png -------------------------------------------------------------------------------- /expedia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/expedia.png -------------------------------------------------------------------------------- /overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/overview.png -------------------------------------------------------------------------------- /summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/summary.png -------------------------------------------------------------------------------- /lazyloading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/lazyloading.png -------------------------------------------------------------------------------- /ticketleap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/ticketleap.png -------------------------------------------------------------------------------- /writethrough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/writethrough.png -------------------------------------------------------------------------------- /elasticacheworking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chandu-muthyala/Amazon-ElastiCache/master/elasticacheworking.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Amazon-ElastiCache 2 | 3 | ### AWS ElastiCache: 4 | 5 | ElastiCache is a web service used to deploy, operate and scale in-memory cache in the cloud. Elasticache improve the performance of the web application by allowing you to retrieve information fast, managed and in-memory data storage instead of relying entirely on slower disk-storage database. 6 | 7 |

8 | 9 | OverView of AWS Elasticache 14 |

15 |

In the deploy, ElastiCache sits between application and data storage

16 | 17 | Elasticache supports two open-source in-memory caching engines. 18 | 19 | 1. **Memcached**: Is an easy-to-use, high-performance, in-memory data store. 20 | 21 | 2. **Redis**: **R**emote **Di**ctionary **S**erver, is a fast, open-source, in-memory key-value data store for use as a database. 22 | 23 | ### How does it work: 24 | 25 |

26 |  AWS Elasticache Working 31 |

32 | 33 | **Cache Node**: is the smallest building block of an Elasticache deployment. A node is a fixed size chunk of secured test ram, exists in isolation from or some relationship to other nodes known as cluster. Each node runs in an instance of either **Memcached** or **Redis** depends on which was chosen when you created cluster. Existing applications that use **Memcached** or **Redis** in memory engines can use ElastiCache with almost no modification. 34 | 35 | **Redis**: 36 | 37 | 1. ElastiCache for Redis is fully managed in an ideal candidate for high performance use cases such as web, mobile app, Gaming, ad-Tech and IoT. 38 | 2. ElastiCache for Redis can scale up to **90 nodes** per cluster to increase data access performance. 39 | 40 | **Memcached**: 41 | 42 | 1. Can be preferable for relatively small and static data such as HTML code fragments. 43 | 2. Memcached comparatively use less memory resources from metadata. 44 | 3. ElastiCache with memcached can scale up to **20 nodes** per cluster. 45 | 4. ElastiCache is used to improve the latency and throughput for various applications and compute intensive work loads. 46 | 47 | ### Caching Strategies: 48 | 49 | Types of caching strategies: 50 | 51 | ***1. Lazy Loading*** 52 | 53 | ***2. Write Through*** 54 | 55 | ***3. Adding TTL*** 56 | 57 | ***Lazy Loading***: Helps in stales the data in ElastiCache, caching Strategy that loads the data into the cache when it is necessary. 58 | 59 |

60 |  Lazy Loading 65 |

66 | 67 | - When ever application requests data, first it request for ElastiCache if it exists then ElastiCache return the data to the application. 68 | 69 | - Otherwise application request data to the data storage and then data storage return data to the application. Then application return that data to the ElastiCache. it will be quickly retrieved for future requests. 70 | 71 | ***Write Through***: Always ensure data is fresh. This Strategy add/updates the ElastiCache when data is written in to the data storage. When spinning up the new node or scaling up node we lost all the ElastiCache data and that scenarios we use Write Through. 72 | 73 |

74 |  Write Through 79 |

80 | 81 | ***Adding TTL***: Using this Strategy we can minimise the space in ElastiCache. 82 | 83 | - Time to live key Strategy for each cache node to how long data present in the ElastiCache. 84 | 85 | - When application try to request the data which already expires, ElastiCache will return data not found and try to fetch from the data storage. 86 | 87 |

88 |  Adding TTL 93 |

94 | 95 | ### Use Cases: 96 | 97 | ***1. Expedia***: **Reduce Data Store Costs** 98 | 99 |

100 |  Expedia 105 |

106 | 107 | ***2. TicketLeap.com***: **Absorb Rapid Traffic Growth** 108 | 109 |

110 |  TicketLeap 115 |

116 | 117 | ***3. TapJoy***: **Decrease mobile app latency** 118 | 119 |

120 | TapJoy 125 |

126 | 127 | ### Summary: 128 | 129 |

130 | Summary 135 |

136 | 137 | ### References: 138 | 139 | 1. [https://aws.amazon.com/elasticache/](https://aws.amazon.com/elasticache/) 140 | 2. [https://aws.amazon.com/redis/](https://aws.amazon.com/redis/) 141 | 3. [https://aws.amazon.com/memcached/](https://aws.amazon.com/memcached/) 142 | 4. [https://www.aws.training/Details/Video?id=16348](https://www.aws.training/Details/Video?id=16348) 143 | --------------------------------------------------------------------------------