如何将数据从mysql移动到Redis [英] how to move data from mysql to redis
问题描述
我尝试将一些常用的数据从mysql放入redis服务器.所以redis就像一个读取服务器一样,我需要将数据从mysql移到redis.有人可以推荐一个好的方法吗?我已经阅读了一些主题并分享了一些思想
I attempt to put some frequently used data into redis server from mysql . so redis just as a read server , i need to move data from mysql to redis. can anybody recommend a good approache ? i have read some topics and have some thinking share
1,通过mysql触发器记录正确的数据,通过定时应用将数据移动到redis 2,读取mysql日志,进行分析,然后放入redis中.
1、through mysql trigger to record proper data , through timing app move data to redis 2、read mysql logs ,analysis it ,then put it to redis.
顺便说一句:在我的应用程序中,存储在Redis中的数据不需要实时,稍有延迟就可以了.
BTW: in my application data stored in redis don't need real-time, a little latency is ok.
推荐答案
我认为mysql udf插件( https://github.com/Ideonella-sakaiensis/lib_mysqludf_redis )可以帮助您将数据从Mysql同步到Redis.
I think the mysql udf plugin (https://github.com/Ideonella-sakaiensis/lib_mysqludf_redis) can help you to synchronize data from Mysql to Redis.
示例:
DELIMITER $$
CREATE TABLE `my_table` (
id varchar(16) PRIMARY KEY,
text varchar(32)
);
为表设置触发器并通过mysql udf调用redis命令
set up a trigger for the table and call redis command by mysql udf
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 获得价值
then you can get value by 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>
}
这篇关于如何将数据从mysql移动到Redis的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!