我尝试将一些常用数据从 mysql 放入 redis 服务器。所以 redis 就像一个读取服务器,我需要将数据从 mysql 移动到 redis。有人可以推荐一个好的方法吗?我已经阅读了一些主题并有一些想法分享
1、通过mysql trigger记录适当的数据,通过定时app将数据移动到redis 2、读取mysql日志,分析后放到redis中。
顺便说一句:在我的应用程序中存储在 redis 中的数据不需要实时,有点延迟是可以的。
我认为mysql udf 插件(https://github.com/Ideonella-sakaiensis/lib_mysqludf_redis)可以帮助您将数据从Mysql 同步到Redis。
例子:
DELIMITER $$
CREATE TABLE `my_table` (
id varchar(16) PRIMARY KEY,
text varchar(32)
);
为表设置触发器并通过mysql udf调用redis命令
DELIMITER $$
CREATE TRIGGER `after_insert_my_table`
AFTER INSERT ON `my_table` FOR EACH ROW
BEGIN
DO `redis`('redis://@127.0.0.1/0/', 'SET', new.`id`, new.`text`);
END $$
DELIMITER ;
然后你可以通过my_table id获得价值
mysql> SELECT `redis`('redis://@127.0.0.1/0/', 'GET', <my_table id>)\G
*************************** 1. row ***************************
`redis`('redis://@127.0.0.1/0/', 'GET', <my_table id>): {
"out": <my_table text>
}
使用 redis-cli 的批量插入模式。
看看这个 - http://dcw.ca/blog/2013/01/02/mysql-to-redis-in-one-step/