将 Mysql 导出到 Redis 并使用 Redis 搜索建立索引

问题描述

创建表

CREATE TABLE events_all_time (
id int(11) unsigned NOTNULL AUTO_INCREMENT,action varchar(255) NOTNULL,count int(11) NOTNULL DEFAULT 0,PRIMARY KEY (id),UNIQUE KEY uniq_action (action));

下面是一个sql脚本的例子,导出数据供redis管道读取

   SELECT CONCAT(
 "*4\r\n",'$',LENGTH(redis_cmd),'\r\n',redis_cmd,LENGTH(redis_key),redis_key,LENGTH(hkey),hkey,LENGTH(hval),hval,'\r'
)
FROM (
 SELECT
 'HSET' as redis_cmd,'events_all_time' AS redis_key,action AS hkey,count AS hval
 FROM events_all_time
) AS t

如何修改 sql 脚本以在 Redis 中创建架构,并为 Redis 搜索的每列提供可搜索索引?

然后使用这个命令通过redis-cli管道导入到redis中。

MysqL stats_db --skip-column-names --raw < events_to_redis.sql | redis-cli --pipe

解决方法

Redis Labs 在 RedisConf 2021 上宣布了他们的新“RedisCDC”解决方案,该解决方案可将数据从异构数据源无缝迁移到 Redis 和 Redis 模块。它可以让您避免手动脚本和 MySQL 本身提供的复杂性之外的复杂性。

您仍然可以注册免费的虚拟会议以观看 RedisCDC 深入了解和演示。会议结束后,它将在 YouTube 上提供。或查看此作为快速概览 - https://github.com/RedisLabs-Field-Engineering/RedisCDC