日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置PolarDB表到Tair表的映射關系

在完成添加Tair緩存節點創建Tair緩存節點賬號以及創建Tair自定義連接地址操作后,您需要配置表映射關系,明確PolarDB數據庫中的表到Tair緩存節點的Redis協議的KV(Key-Value)結構或者KKV(Key-Key-Value)結構,從而使Tair緩存節點按照您的業務預期來提供緩存能力。

前提條件

配置說明

目前映射配置支持String映射Hash映射兩種模式。在此之前,我們來了解一下系統表。

系統表介紹

為了在PolarDB中實現Tair緩存一體化的能力,PolarDB預置了如下系統表:

-- system table, create by default, mysql

-- string映射模式的系統表
CREATE TABLE mysql.`tair_string_containers` (
  `name` varchar(50) NOT NULL COMMENT '映射的唯一名,用于唯一確定一個映射',
  `db_schema` varchar(250) NOT NULL COMMENT '映射的表所在的db', 
  `db_table` varchar(250) NOT NULL COMMENT '映射表',
  `key_column` varchar(250) NOT NULL COMMENT '映射的key使用的列',
  `value_column` varchar(250) NOT NULL COMMENT '映射的value使用的列',
  `unique_idx_name_on_key` varchar(250) NOT NULL COMMENT '使用的索引名,因為tair不感知所有的索引,也不使用優化器,因此需要手動指定索引',
  PRIMARY KEY (`name`)
);

-- hash映射模式的系統表
CREATE TABLE IF NOT EXISTS `tair_hash_containers` (
  `name` varchar(50) NOT NULL COMMENT '映射的唯一名,用于唯一確定一個映射',
  `db_schema` varchar(250) NOT NULL COMMENT '映射的表所在的db', 
  `db_table` varchar(250) NOT NULL COMMENT '映射表',
  `key_column` varchar(250) NOT NULL COMMENT '映射的key使用的列',
  `value_column` varchar(250) NOT NULL COMMENT '映射的value使用的列',
  `unique_idx_name_on_key` varchar(250) NOT NULL COMMENT '使用的索引名,因為tair不感知所有的索引,也不使用優化器,因此需要手動指定索引',
  PRIMARY KEY (`name`)
);

支持的字段數據類型如下:

key

value

TINYINT

支持

支持

SMALLINT

支持

支持

MEDIUMINT

暫未支持

暫未支持

INT或INTEGER

支持

支持

BIGINT

支持

支持

FLOAT

無意義,不支持

支持

DOUBLE

無意義,不支持

支持

DECIMAL

暫未支持

暫未支持

CHAR

支持

支持

VARCHAR

支持

支持

TINYBLOB

支持,不建議

支持

TINYTEXT

支持,不建議

支持

BLOB

支持,不建議

支持

TEXT

支持,不建議

支持

MEDIUMBLOB

支持,不建議

支持

MEDIUMTEXT

支持,不建議

支持

LONGBLOB

暫未支持

暫未支持

LONGTEXT

暫未支持

暫未支持

(推薦)模式一:String映射

說明

為了保證更好的使用體驗,建議您優先選擇String映射模式進行配置。

String映射支持在具有讀寫權限的表中,使用KV結構,將一個column作為key,一個column作為value。

說明

為保證key的唯一性,選擇作為key的column,需要事先創建索引unique_idx_name_on_key

以下通過一個示例,帶您了解如何通過SQL配置String映射:

CREATE database test_db;

use test_db

CREATE TABLE `test` (
  `key` varchar(50) NOT NULL,
  `value` varchar(50) DEFAULT NULL,
  `value2` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`key`)
);

insert into mysql.tair_string_containers values ("example", "test_db", "test", "key", "value", "PRIMARY");

insert into test values ("k", "v", "v2");

FLUSH TAIR;

從Tair緩存節點以Redis協議讀取數據時,需要以設置的name作為key的前綴,并使用@分隔。例如:

redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get example@k
"v"

模式二:Hash映射

Hash映射符合Redis Hash結構用法,支持在具有讀寫權限的表中,使用KKV結構,將一個column作為key,多個column的字段名作為field,column的數據作為子field的value。

說明

為保證key的唯一性,選擇作為key的column,需要事先創建索引unique_idx_name_on_key

以下通過一個示例,帶您了解如何通過SQL配置Hash映射:

CREATE database test_db;

use test_db

CREATE TABLE `test` (
  `key` varchar(50) NOT NULL,
  `value` varchar(50) DEFAULT NULL,
  `value2` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`key`)
);

insert into mysql.tair_hash_containers values ("hexample", "test_db", "test", "key", "value,value2", "PRIMARY");

insert into test values ("k", "v", "v2");

FLUSH TAIR;

從Tair緩存節點以Redis協議讀取數據時,需要以設置的name作為key的前綴,并使用@分隔。例如:

redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> hget hexample@k value2
"v2"
127.0.0.1:6379> hget hexample@k value
"v"

多column組成key

當前String映射模式和Hash映射模式都支持多column組成key。您只需要在key_column中傳入多個逗號分隔的column名稱即可。

說明

為了保證key的唯一性,選擇作為key的column,需要創建unique_idx_name_on_key索引覆蓋所有的key_column。

以下通過一個示例,帶您了解如何通過SQL配置多column組成key:

CREATE database test_db;

use test_db

CREATE TABLE `test` (
  `user` varchar(50) NOT NULL,
  `phone` varchar(50) NOT NULL,
  `value` varchar(50) DEFAULT NULL,
  `value2` varchar(50) DEFAULT NULL,
);

ALTER TABLE test ADD UNIQUE INDEX idx_user_phone (user, phone);

insert into mysql.tair_hash_containers values ("hexample", "test_db", "test", "user,phone", "value,value2", "idx_user_phone");

insert into test values ("test_user", "13600001234", "v", "v2");

FLUSH TAIR;

從Tair緩存節點以Redis協議讀取數據時,需要拼接多個key_column,并使用#分隔。例如:

redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> hget hexample@test_user#13600001234 value2
"v2"
127.0.0.1:6379> hget hexample@test_user#13600001234 value
"v"

問題排查

添加映射后,執行如下命令以刷新配置:

FLUSH TAIR;

刷新配置后,有些配置可能無法刷新成功,此時可以使用如下命令,查看對應的錯誤日志:

show warnings;

后續操作

在完成表映射關系配置后,您就可以連接到PolarDB數據庫集群,并發出Redis命令以使用Tair緩存節點提供的功能。