Amazon Elastic Cache for Redis Lecture Notes

Jul 17, 2024

Amazon Elastic Cache for Redis Lecture Notes

Introduction

  • Presenter: Sambhu from CloudTech
  • Topic: Amazon Elastic Cache for Redis
  • Purpose: Demonstration on configuration and usage

Key Points

What is Amazon Elastic Cache?

  • In-memory caching service
  • Reduces backend server calls by storing cache entries

Caching Mechanisms Supported

  • Redis Cache
  • Memcached

Advantages and Disadvantages

Advantages

  • Performance improvement by reducing database queries
  • Scalability (scale in/out)
  • Cost-effective
  • Reliable
  • Optimizes deployment and management of distributed caching environment

Disadvantages

  • None specifically mentioned

Use Cases

  • Backup applications
  • E-commerce sites
  • Streaming platforms like Netflix
  • Applications with high database query loads benefited by caching

Configuration Steps for Redis Cache

Prerequisites

  • AWS Console logged in

Configuration Process

  1. Select Region: Example used Virginia
  2. Search & Select Elastic Cache on AWS Console
  3. Create Subnet Group: Necessary before creating cache
    • Use default VPC
    • Select at least 2 subnets
  4. Create Cluster: Using Redis
    • Default VPC and settings
    • Subnet group created previously
    • Network settings (IPV4, Subnet group)
    • Security group and parameters
    • Optional: Replication, encryption, automatic backup
  5. Launch Cluster
  6. Create Lambda Function
    • Specify Python version
    • Configure VPC, subnets, and security groups
    • Add Redis dependency using AWS layer
    • Configure environment variables (host, port, password)
    • Deploy function

Example Code for Lambda Function

import os
import redis

host = os.environ['HOST']
port = os.environ['PORT']
password = os.environ['PASSWORD']

if not host or not port:
   return {'statusCode': 500, 'body': 'Missing required parameters'}

client = redis.StrictRedis(host=host, port=port, password=password, decode_responses=True)
client.set('CloudTech', 'Elastic Cache Demo from Lambda Python')
value = client.get('CloudTech')

return {'statusCode': 200, 'body': f'Value from cache: {value}'}

Connect to Redis from EC2

  1. Launch EC2 instance
  2. Configure security group
  3. Connect via SSH and install redis-cli

Commands for Redis Connection

  • Set and Get values:
    • redis-cli set key value
    • redis-cli get key
  • List all keys: redis-cli keys *

Additional Notes

  • Telnet Option: Alternative for redis-cli
  • Updating Configuration: Modify environment variables in Lambda instead of redeploying

Conclusion

  • Redis cache effectively bridges backend and improves application performance.
  • Telnet can be used as a workaround for redis-cli installation issues.
  • Encouragement to subscribe and share the channel for more tutorials.

Next Steps

  • Upcoming videos on Memcached configuration and other caching mechanisms.