AWS ElastiCache

  • 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:创建高配置的结点,从备份文件导入数据,不能直接修改原结点配置
  • 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)