华为云内存加速的“全自动主动缓存方案”,可通过界面可视化配置,支持用户将MySQL表数据映射为GeminiDB中的Hash等结构,同时还支持数据过滤及过期等功能,配置完成后即可实现自动同步,不仅简单易用还能提升效率。
什么是内存加速
传统的MySQL+Cache架构,用户把数据写入MySQL后,同时还需要将数据更新到缓存中,开发效率低。为了优化MySQL“传统被动缓存方案”,GeminiDB Redis接口推出了内存加速功能。
该功能能够实现MySQL到GeminiDB的数据联动,用户只需在MySQL中写入一次数据, 便可以从GeminiDB Redis接口中加速数据读取,实现数据的自动同步, 极大提升开发效率。
如下图所示,“传统被动缓存方案”效率低、不可靠,而华为云内存加速的“全自动主动缓存方案”,可通过界面可视化配置,支持用户将MySQL表数据映射为GeminiDB中的Hash等结构,同时还支持数据过滤及过期等功能,配置完成后即可实现自动同步,不仅简单易用还能提升效率。
如何使用内存加速
在已有的 MySQL 实例内开启内存加速需要两步:创建GeminiDB实例和创建映射规则。
第一步:创建GeminiDB实例。
- 登录管理控制台;
- 在服务列表中选择“数据库 > 云数据库RDS for MySQL”;
- 在“实例管理”页面,选择指定的实例,单击实例名称;
- 在左侧导航树,单击“内存加速”;
- 如果没有开启内存加速,那么“内存加速”页面显示如下;此时需要单击“创建GeminiDB实例”按钮开启内存加速。
第二步:创建映射规则。
GeminiDB实例创建完成后,内存加速会变成如下的界面,点击“创建映射规则”进一步配置;
使用示例
1. 首先在源实例 MySQL 中创建一个 db1 数据库,并在 db1 中创建一个 students 表,具体的 SQL 如下:
mysql> CREATE DATABASE db1; Query OK, 1 row affected (0.00 sec) mysql> CREATE TABLE db1.students( -> sid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, -> sname VARCHAR(20), -> sclass INT, -> sgender VARCHAR(10), -> sbirthday DATE -> ); Query OK, 0 rows affected (0.00 sec) mysql> DESC db1.students; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | sid | int unsigned | NO | PRI | NULL | auto_increment | | sname | varchar(20) | YES | | NULL | | | sclass | int | YES | | NULL | | | sgender | varchar(10) | YES | | NULL | | | sbirthday | date | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
2. 建表后,在“内存加速”界面,创建一条映射规则,将students表中的每一行记录转换为一个Redis的hash key。
该 hash 的键(key)由”数据库名:数据表名:sid:<sid的值>”构成,而域-值(field-value)由选中的“sname,sclass,sgender,sbirthday”构成。
3. 映射规则创建成功后,可以在映射规则列表中看到该规则以及对应的运行状态:
4. 在 MySQL 侧对 students 表插入一条新数据:
mysql> INSERT INTO db1.students (sname, sclass, sgender, sbirthday) VALUES ('zhangsan', 1, 'male', '2015-05-20'); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM db1.students; +-----+----------+--------+---------+------------+ | sid | sname | sclass | sgender | sbirthday | +-----+----------+--------+---------+------------+ | 1 | zhangsan | 1 | male | 2015-05-20 | +-----+----------+--------+---------+------------+ 1 row in set (0.00 sec)
由于已配置映射规则,会把MySQL该数据自动同步到 GeminiDB 中,此时在 GeminiDB 中使用hash命令可以查询到该key
127.0.0.1:6379> HGETALL db1:students:sid:1 1) "sbirthday" 2) "2015-05-20" 3) "sclass" 4) "1" 5) "sgender" 6) "male" 7) "sname" 8) "zhangsan"
同理,在MySQL中更新数据、删除数据也会及时在GeminiDB中更新,更多示例可参考官网文档:管理映射规则
常见问题:
1. 内存加速功能,会把所有数据全部缓存到GeminiDB吗?还是什么策略?
不是,需要用户通过界面操作:指定MySQL表空间(db)、表名(table)、字段(field)到GeminiDB的转换规则。配置好后,符合规则的数据会自动同步到GeminiDB。
2. GeminiDB数据会不断增长膨大,需要扩容吗?如何进行缓存数据管理?
GeminiDB默认每条数据设置30天过期时间,用户也可以灵活调整;如果数据不断增长,需要及时扩容GeminiDB存储空间。
3. RDS for MySQL到GeminiDB数据延迟大概在多少?都受哪些因素影响?
可以做到实时同步,建议用户实测。
时延可能受到以下因素限制:
- RDS for MySQL到GeminiDB本身的物理距离,通常建议同Region;
- 避免GeminiDB的实例规格过小,通常建议同CPU规格。
4. 对源端MySQL影响如何?
主要工作原理是订阅MySQL的binlog,对源端几乎无影响。
当前内存加速功能已经在公测,公测范围:北京四、上海一、广州,用户可以创建免费GeminiDB规格,快来试用吧!
公测公告:https://support.huaweicloud.com/bulletin-nosql/nosql_OBTnotice_003.html
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容