一文读懂基于Redis的Amazon MemoryDB数据库

前言

传统的自建Redis通过Jedis、Redisson以及Lettuce

  • Jedis:由JAVA实现,支持较为全面的Redis命令
  • Redisson:分布式操作多以及可拓展性强
  • Lettuce:分布式缓存框架应用比较多

对比传统方法以及传统数据库,通过云数据库搭建Redis,从效率、操作、安全以及可用性来说,功能效果非常齐全,将其传统数据库中的缺点转变成优点。

MemoryDB 同时可提供内存性能和多可用区持久性,可用作微服务应用程序的高性能主数据库,无需单独管理缓存和持久数据库
MemoryDB of Redis 拥有持久化内存数据库服务,提供超快的性能

  1. MemoryDB 与流行的开源数据存储 Redis 兼容,能够使用友好的Redis 数据结构、API 和命令快速构建应用程序
  2. MemoryDB可将所有数据都存储在内存,实现微秒级读取和个位数毫秒级写入,从而达到低延迟和高吞吐量
  3. 使用多可用区事务日志来跨多个可用区从而达到持久存储数据,以实现快速故障转移、数据库恢复和节点重启
    其核心组件拥有:集群、节点、碎片等

关于Amazon的其他数据库也有很多种类型,优点很多而且非常容易上手:数据库免费试用链接及上手教程。再者不定期的举办技术会议来促进交流,通过云原生数据库在线大会的链接网址,可以学到更多前沿技术。不仅文档教程代码齐全,而且免费套餐力度特别大,亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量 永久免费。附上链接:100余种产品免费套餐

在进入正文原理以及实验讲解的同时,需要注册账号以及验证个人信息
(注:1. 个人信息的地址需要使用英文
2. 账单信息使用VISA等信用卡或借记卡号)

1. 配置 MemoryDB

1.1 获取 AWS 访问密钥

主要步骤如下:

  1. 通过前面的步骤注册登录 AWS 管理控制台,通过如下打开IAM 控制台 。
  2. 在左侧导航栏目中,选择 Users (用户),创建用户(选择Security credentials (安全凭证) 选项卡),在 Access keys(访问密钥) 部分,选择 Create access key (创建访问密钥)
    在这里插入图片描述
  3. 设置权限(将其用户添到组中),并且设置权限的边界(如果不设置权限会提示此用户没有访问权限)。
  4. 要查看新访问密钥对,请选择 Show (显示)。关闭此页面后,您将无法再次访问该私有访问密钥。您的凭证与下面类似:
    在这里插入图片描述
  5. 要下载密钥对,请选择 Download .csv file (下载 .csv 文件)。将密钥存储在安全位置。
    在这里插入图片描述

1.2 下载和配置 AWS CLI

配置凭证的方式可以通过编程方式或通过AWSCLI(须配置凭证来为应用程序启用授权)
下载和配置的文档链接如下:AWS CLI

展示界面Windows的安装过程(命令比较少):
在这里插入图片描述

同理linux平台上的安装过程(其他平台同理):
在这里插入图片描述
之后还需要配置凭证,通过aws configure(以下显示示例值)

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

截图如下:
在这里插入图片描述

2. 配置集群

2.1 创建集群

创建集群的方式有三种:

第一种:通过控制台
具体步骤如下,点击创建集群
在这里插入图片描述
子网组、VPC以及子网(如果启用了多可用区,子网组包含两个不同可用区以上的子网)
在这里插入图片描述

设置集群

  • 版本:兼容性选择默认值6.2
  • 端口:默认值选择Redis的6379(如果端口冲突,可选择相应的端口号)
  • 参数组:默认选择default.memorydb-redis6
  • 节点类型:选择适合节点类型的内存值
  • 分片数量:该集群所需的分区数(为了提高集群可用性,建议选择2个分片以上)
  • 副本数:为分片中选择需要的只读副本数(如果启用多可用区,每个分片1个副本以上)
    在这里插入图片描述

对于高级选项中的安全组(充当防火墙来控制对集群的网络访问)

  • 加密数据(静态加密:对磁盘上存储的数据加密;传输中加密:对传输的数据启用加密)
    在这里插入图片描述

之后的快照、维护以及集群标签部分视个人情况而定

第二种:通过AWSCLI

  • Linux示例代码:
aws memorydb create-cluster \
    --cluster-name my-cluster \
    --node-type db.r6g.large \
    --acl-name my-acl \
    --subnet-group my-sg
  • Windows示例代码:
aws memorydb create-cluster ^
   --cluster-name my-cluster ^
   --node-type db.r6g.large ^
   --acl-name my-acl ^
   --subnet-group my-sg

成功创建之后会输出一串json格式

第三种:通过API

以上三种更加详细的说明可看:创建集群文档

2.2 授予集群访问权限

所有 MemoryDB 集群通过 Amazon EC2 实例进行访问(须授权EC2实例)
同一 VPC 中 EC2 实例与集群之间的访问
启动实例的具体步骤:Amazon EC2 控制台

  1. 创建密钥对(启动的实例没有密钥对,就不能连接到该实例)
    在这里插入图片描述

创建实例

  • Name and tags:名称与标签
  • Application and OS Images (Amazon Machine Image):快速启动和AMI映像
  • 实例类型:默认选择t2.micro实例类型(如果t2.micro实例不可用的区域,可选择t3.micro 实例)
  • 密钥对:选择一开始创建的密钥对
  • 网络设置:选择现有的安全组或者创建新的安全组(此安全组可用于限制对集群的访问权限)
    在这里插入图片描述

在集群的安全组中创建自定义规则(此安全组将允许访问其他安全组成员),编辑入站规则,选择添加规则
Type 中选择 Custom TCP Rule

  • 端口号:指定创建集群时的端口(此处为了方便测试,统一使用了广播地址0.0.0.0)
  • Source源:安全组的ID
    在这里插入图片描述

启用连接访问后,就可连接到集群
在这里插入图片描述

最后的展示页面如下:
在这里插入图片描述

2.3 连接到集群

确定集群的终端节点:(通过describe-clusters命令搜索集群终端节点)

aws memorydb describe-clusters \
  --cluster-name mycluster

命令将返回集群的终端节点,通过json格式响应
在这里插入图片描述

使用 redis-cli 连接到 MemoryDB 节点
下载并编译 redis-cli 实用工具:

$ sudo yum -y install openssl-devel gcc
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean
$ make redis-cli BUILD_TLS=yes
$ sudo install -m 755 src/redis-cli /usr/local/bin/

编译执行过程截图:

在这里插入图片描述

在EC2的实例中执行如下命令(集群和端口的终端节点替换此示例)
通过src/redis-cli -c -h Cluster Endpoint --tls -p 6379
具体Cluster Endpoint的集群通过点击集群终端节点即可查看

在这里插入图片描述

2.4 删除集群

将其创建集群的名称删除即可
单独删除一个集群:aws memorydb delete-cluster --cluster-name my-cluster
删除多个集群:

aws memorydb delete-cluster \
    --cluster-name my-cluster \
    --region us-east-1

总结

纵观全文,通过阅读文档以及整套实验下来,行云流水,得益于文档以及功能都比较齐全,体验感很美妙。本身MemoryDB无需单独管理缓存和持久数据库,是一款非常高性能的数据库,基于Redis提供了持久化内存数据库服务,有其读取以及写入数据,达到低延迟和高吞吐量;能够友好使用Redis的数据结构、API 和命令快速构建应用程序

通过以上的实验步骤,你已经可以入门学习了,更多的探索部分如果还想了解学习可通过:Amazon MemoryDB for Redis 官网文档

亚马逊云科技专为开发者们打造了多种学习平台:
入门资源中心:从0到1 轻松上手云服务,内容涵盖:成本管理,上手训练,开发资源。
架构中心:亚马逊云科技架构中心提供了云平台参考架构图表、经过审查的架构解决方案、Well-Architected 最佳实践、模式、图标等。
构建者库:了解亚马逊云科技如何构建和运营软件。
工具包:用于在亚马逊云科技平台上开发和管理应用程序。

除了代码文档齐全完善,为了让更多的人体验体会,特此推出【专属福利】
福利一:100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量。
福利二:最新优惠大礼包:200 数 据 与 分 析 抵 扣 券 , 200 数据与分析抵扣券,200 200机器学习抵扣券,200$微服务与应用开发抵扣券。
福利三:解决方案CloudFormation一键部署模版库

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值