更新时间:2025-09-18 GMT+08:00
链接复制成功!
开启和使用内存加速
本章节主要介绍如何开启内存加速功能,主要流程如下:
注意事项
- 目前该功能处于公测阶段,您可以在管理控制台右上角,选择“工单 > 新建工单”联系客服进行咨询。
- 内存加速开启后,不允许在TaurusDB实例执行RESET MASTER、FLUSH LOGS等删除binlog的命令。
- 新规则的Redis键前缀+键分隔符不能是已有规则的Redis键前缀+键分隔符的子前缀,反之亦然。例如新规则的前缀为 "pre1:",键分隔符为 "," ,老规则前缀为 "pre1",分隔符为":", 这种情况不允许创建新规则。
- 暂不支持ENUM、SET、JSON三种数据类型的同步。
- 由于是轻量级增量数据同步,目前仅支持单表查询,暂不支持联合查询。
- 目前仅GeminiDB Redis实例收费,该功能没有其他额外费用。
- 您购买TaurusDB实例时,如果“内存加速”参数,选择了“立即购买”,则会自动购买GeminiDB实例搭建DBcache,您可以跳过创建GeminiDB实例步骤,直接从创建映射开始使用。
操作步骤
步骤1:选取GeminiDB实例
- 登录云数据库TaurusDB控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在“实例管理”页面,单击目标实例名称,进入“实例概览”页面。
- 在左侧导航栏选择“内存加速”,单击“创建GeminiDB实例”或者“选择已有GeminiDB实例”。
- 单击“创建GeminiDB实例”,并执行5。
- 单击“选择已有GeminiDB实例”选择已有的GeminiDB Redis实例。
- 参见表1选择并填写实例相关信息后,单击“提交”,完成实例创建。

Region、可用区、VPC,子网等参数默认与当前TaurusDB实例一致。
表1 基本信息 参数
描述
GeminiDB实例规格
实例的CPU和内存,详细规格见表2。
数据库端口
数据库的访问端口号。
GeminiDB Redis支持自定义端口号,取值范围为:1024~65535,其中,如下端口号为禁用端口:2180、2887、3887、6377、6378、6380、8018、8079、8091、8479、8484、8999、12017、12333、50069。
当您不指定端口时,创建实例的访问端口默认为6379。
说明:暂时不支持实例创建成功后修改端口。
实例名称
设置实例名称时,需要满足如下规则。
- 实例名称允许和已有名称重复。
- 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。
数据库密码
用户设置的数据库密码。
- 长度为8~32个字符。
- 必须是大写字母、小写字母、数字、特殊字符中至少两种的组合,其中可输入~!@#%^*-_=+?特殊字符。
- 系统会进行弱密码校验,安全起见,请输入高强度密码。
请妥善管理您的密码,因为系统将无法获取您的密码信息。
确认密码
必须和数据库密码一致。
步骤2:创建映射
- 登录云数据库TaurusDB控制台。
- 单击管理控制台左上角的
,选择区域和项目。 - 在“实例管理”页面,单击目标实例名称,进入“实例概览”页面。
- 在左侧导航栏选择“内存加速”,在“映射规则”区域单击“创建映射规则”。图1 映射规则

- 在“创建映射规则”页面,填写并选择相关信息。
- 配置规则名称。
- 源实例配置。
- 数据库名:选择需要加速实例的数据库。
- 表名:选择需要加速实例中的表。
图3 源实例配置
- 加速实例端配置。
- Redis键前缀:可选。默认的前缀格式为“数据库名:数据表名:字段名1:字段名2...”,长度不超过1024个字符。如果用户自定义了Redis键前缀,那么以自定义前缀为准。
- 值存储类型:缓存的数据类型,当前仅支持Hash。
- DB号(0-999):加速实例中保存缓存数据的DB号,默认为0。
- TTL(单位:秒,默认值为30天。):加速实例中缓存数据的过期时间,默认30天(2592000秒),输入-1为不过期。
- 键分隔符:Redis键前缀与键(Key)、以及键(Key)各字段之间的分隔符,长度为1个字符。
图4 加速实例端配置
- 单击“键(Key)设置”,选择加速实例的键(Key)字段,单击“确定”。

如果加速实例键(Key)由多个源实例字段组成,那么需要具备唯一性(这些字段在TaurusDB实例中要能成功创建出唯一索引);可以单击“上移”和“下移”调整各字段在键(Key)中的先后顺序。
图5 键(Key)设置
设置完成后,会在界面中显示键(Key)的构成方式,如下图所示:
图6 键(Key)
- 配置加速实例的域-值。
- 配置信息填写完成后,单击“提交”,完成映射规则创建。
步骤3:使用示例
- 在源实例TaurusDB中创建一个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) - 建表后,在“内存加速”界面,创建一条映射规则,将students表中的每一行转换为一个Redis Hash。该Hash的键(Key)由”数据库名:数据表名:sid:<sid的值>”构成,域-值由选中的“sname,sclass,sgender,sbirthday”构成。 图8 配置映射规则

- 映射规则创建成功后,可以查看映射规则及映射信息。 图9 映射信息

- 在TaurusDB实例侧对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) - 由于映射规则的存在,会把该数据自动同步到GeminiDB实例中。此时在GeminiDB实例中执行命令即可查询到该数据:
127.0.0.1:6379> KEYS * 1) "db1:students:sid:1" 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"
- 在TaurusDB实例侧对students表再次插入一条新数据:
mysql> INSERT INTO db1.students (sname, sclass, sgender, sbirthday) VALUES ('lisi', 10, 'male', '2015-05-22'); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM db1.students; +-----+----------+--------+---------+------------+ | sid | sname | sclass | sgender | sbirthday | +-----+----------+--------+---------+------------+ | 1 | zhangsan | 1 | male | 2015-05-20 | | 2 | lisi | 10 | male | 2015-05-22 | +-----+----------+--------+---------+------------+ 2 rows in set (0.00 sec) - 新数据会被同步到GeminiDB实例中:
127.0.0.1:6379> KEYS * 1) "db1:students:sid:1" 2) "db1:students:sid:2" 127.0.0.1:6379> HGETALL db1:students:sid:2 1) "sbirthday" 2) "2015-05-22" 3) "sclass" 4) "10" 5) "sgender" 6) "male" 7) "sname"
- 在 TaurusDB实例侧对students表执行更新数据操作:
mysql> UPDATE db1.students SET sclass=12, sname='wangwu' WHERE sid = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> SELECT * FROM db1.students; +-----+--------+--------+---------+------------+ | sid | sname | sclass | sgender | sbirthday | +-----+--------+--------+---------+------------+ | 1 | wangwu | 12 | male | 2015-05-20 | | 2 | lisi | 10 | male | 2015-05-22 | +-----+--------+--------+---------+------------+ 2 rows in set (0.00 sec)
- 在GeminiDB实例中查看数据被更新:
127.0.0.1:6379> KEYS * 1) "db1:students:sid:1" 2) "db1:students:sid:2" 127.0.0.1:6379> HGETALL db1:students:sid:1 1) "sbirthday" 2) "2015-05-20" 3) "sclass" 4) "12" 5) "sgender" 6) "male" 7) "sname" 8) "wangwu"
- 在TaurusDB实例侧对students表执行删除数据操作:
mysql> DELETE FROM db1.students WHERE sid = 1; Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM db1.students; +-----+-------+--------+---------+------------+ | sid | sname | sclass | sgender | sbirthday | +-----+-------+--------+---------+------------+ | 2 | lisi | 10 | male | 2015-05-22 | +-----+-------+--------+---------+------------+ 1 row in set (0.00 sec)
- 在 GeminiDB实例中查看数据被删除:
127.0.0.1:6379> KEYS * 1) "db1:students:sid:2"



