【问题标题】:how to move data from mysql to redis如何将数据从mysql移动到redis
【发布时间】:2012-05-27 13:52:06
【问题描述】:

我尝试将一些常用数据从 mysql 放入 redis 服务器。所以redis就像一个读取服务器,我需要将数据从mysql移动到redis。有人可以推荐一个好的方法吗?看了一些题目,有一些思考分享

1、通过mysql触发器记录适当的数据,通过定时app将数据移动到redis 2、读取mysql日志,分析,然后放到redis中。

顺便说一句:在我的应用程序中存储在 redis 中的数据不需要实时,稍微延迟就可以了。

【问题讨论】:

  • 为什么要移动数据?你能用 Redis 来代替缓存吗?
  • 你说的对。我想把mysql数据聚合起来放到redis中经常读取,也许分开更灵活。
  • 另外,我没有打算持久化redis数据,如果redis服务器宕机,我可以使用mysql->redis子系统恢复redis。
  • 所以只需像使用 memcached 或任何其他缓存一样使用 github.com/sebleier/django-redis-cache 之类的东西。
  • @eric 你能分享我一些经验吗:)

标签: mysql redis


【解决方案1】:

我认为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>
}

【讨论】:

    【解决方案2】:

    使用redis-cli的批量插入模式。

    看看这个 - http://dcw.ca/blog/2013/01/02/mysql-to-redis-in-one-step/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多