- AWS ElastiCache
- 支持两种类型的缓存引擎,Memcached和Redis,和RDS一样,可以在EC2上安装Memcached和Redis软件,也可以依靠AWS ElastiCache来创建Memcached和Redis服务
- 默认推荐使用AWS ElastiCache来创建Memcached和Redis服务,因为这样AWS可以帮助我们创建和管理实例,软件升级,patch等
- 缓存数据的访问的模式是:先从Cache中查找,有的话直接返回,没有则从DB中查找,并写入缓存
- 哪些数据可以作为缓存?
- 经常访问的静态数据,如,网站主页,产品目录列表等
- 临时数据,如,用户登录session,购物车等
- 复杂的SQL查询结果,如,大量数据的统计结果,排名信息等
- 哪些数据最好不要缓存?
- 不常访问的数据,如,银行卡余额,某个用户的电话消费详情等
- 经常变化的数据,如,网站登录次数,某商品实时订单总数等
- Memocached
- 每个集群可以支持20个结点
- 提供工具Auto Discovery,客户端安装该工具后可以自动发现Memcached集群里哪些结点可用,并选择合适的结点
- 增加结点只是为了增加系统性能,不能增加HA,结点之间没有冗余数据
- 纯粹的内存存储,不能持久化数据到硬盘,不支持数据恢复,如果某个结点挂了,上面的数据也丢失了,只能重新加载数据
- 简单的key-value模式存储,不支持复杂的数据类型
- Redis
- 每个集群只有1个结点,但支持挂5个read replica,可以将它们放到一个redis replication group中
- 支持多种数据类型,如list,map,string,set等
- 支持数据持久化,可以将所有内存数据持久化到磁盘文件,并通过此备份文件创建新的Redis结点
- 支持publish-subscribe模式,就是发布-订阅模式
- 支持统计,排名等高级功能
- Scaling
- Horizontal Scaling
- Memocached:支持20个结点,以提高系统性能
- Redis:支持创建5个副本,主结点读-写,副本读,实现读写分离,提高系统性能
- Vertical Scaling
- Memocached:只能创建一个高配置的结点,然后加入集群,无法从snapshot回复数据,不能直接修改原结点配置
- Redis:创建高配置的结点,从备份文件导入数据,不能直接修改原结点配置
- Horizontal Scaling
- Replication and Multi-AZ
- 这些功能只有Redis支持,开启Multi-AZ后,Redis具备高可靠,当某个副本挂掉后,AWS ElastiCache会自动创建新的结点,并加入replication group。如果是主结点挂历,会选举一个副本作为主结点,并自动修改DNS接入点,这些对用户来说都是透明的。
- 主-从之间的复制都是异步的
- Backup and Recovery
- 不要在Primary node上backup数据,可以在只读副本上操作,以减少影响
- 自动备份,支持自动创建snapshot来备份缓存数据,并存入S3,并定期删除备份
- 手动备份,手动创建snapshot来备份数据,不会自动删除
- 恢复时只能恢复到新创建的结点上,不能恢复到原结点
- Access Control
- Security Group and ACL:通过网络配置,指定哪些网络可以访问Redis和Memcached结点
- IAM:通过IAM控制那些principal和role可以操作Redis和Memcached结点
- 注意:Memocached和Redis没有root password的说法
AWS ElastiCache
最新推荐文章于 2024-08-21 00:00:18 发布