Amazon ElastiCache
缓存是一种用于提高数据访问性能的技术,通过将数据存储在高速存储介质(如内存)中,避免了频繁从慢速的数据存储(如数据库)中读取数据。
doesn’t cache at edge locations
Amazon ElastiCache允许您在云中轻松创建和管理cache。
缓存是一种快速存储数据的方法,可以加快应用程序的速度。
它提供了高性能、低延迟的内存数据库,用于缓存数据。
- ElastiCache支持两种流行的缓存引擎:Redis和Memcached。
- 内存数据库(Caches)的高性能和低延迟: ElastiCache提供了高性能和低延迟的内存数据库,允许您在内存中存储和检索数据,从而加快数据访问速度。
- 减轻数据库负载: 使用ElastiCache可以将读取密集型工作负载的负载转移到缓存数据库中,从而减轻主数据库的负载,提高数据库的性能和响应能力。
- 用户会话存储: ElastiCache还可以用作应用程序的用户会话存储,帮助使应用程序无状态化。通过将用户会话存储在缓存中,可以实现应用程序的无状态设计,从而更好地处理负载均衡和可扩展性。
- AWS管理和维护: Amazon ElastiCache负责托管Redis或Memcached的操作系统维护、补丁管理、性能优化、设置、配置、监控、故障恢复和备份。这样,您无需担心底层基础设施和管理任务。
- 应用程序代码更改: 使用ElastiCache通常需要对应用程序代码进行适度的更改,以支持缓存功能。例如,您需要调整应用程序的读取逻辑,以先查找缓存,如果缓存中没有,则再查找主数据库。
Cache Security
- All caches in ElastiCache:
- 不支持IAM身份验证
- ElastiCache上的IAM策略仅用于AWS API级别的安全性
- Redis认证(AUTH):
- 令牌:You can set a “password/token” when you create a Redis cluster
- This is an extra level of security for your cache (on top of security groups)
- Support SSL in flight encryption
- Memcached
- 支持基于SASL的身份验证(高级功能)
patterns for ElasticCache
Lazy Loading (延迟加载):
这个方法很lazy,读取数据首先检查cache里面有没有,有的话直接读取,没有再到持久性数据储存中读取。但这样导致cache里的数据可能会过时,必须额外设置更新数据
Write-through (写入透穿):
在写入数据库时同时将数据添加或更新到缓存中
Session Store (会话存储):
将临时会话数据存储在缓存中(使用TTL功能)。
ElastiCache – Redis Use Case
- 游戏排行榜的复杂计算
- Redis排序集保证了唯一性和元素顺序
- 每次添加新元素时,都会对其进行实时排名,然后添加到正确的顺序