有没有一种简单的方法可以将MySQL表转换为Redis等价物?

时间:2011-04-12 04:42:49

标签: mysql redis myisam

有没有一种简单的方法可以将mysql表转换为redis等效表?

我在MySQL中有一个myisam表,基本上用作键值存储,我想“移动”到Redis,所以它会超级快。有一个简单的方法吗?

感谢。

3 个答案:

答案 0 :(得分:8)

最简单的方法是获取mysql表的转储并将相关数据条目解析为redis命令。

例如,数据转储会产生如下内容:

CREATE TABLE carousel(
  id int(11),
  path varchar(200),
  title varchar(200),
  comments varchar(200)
);

INSERT INTO carousel VALUES (3,'7.jpg','Inspirar','inspiration');
INSERT INTO carousel VALUES (4,'d.jpg','Pilotar','pilotar');
INSERT INTO carousel VALUES (5,'8.jpg','Sentir','sentir');
INSERT INTO carousel VALUES (6,'6.jpg','Volar','volar');

首先,您需要决定要在redis中使用的密钥结构。一种想法是使用表作为键,并将每行的ID存储在一个集合中。

对于每个表,您需要创建一个容纳ID的键,让我们称之为idx:$ table。使用我们的示例,我们将创建idx:carousel。

当我们解析文件时,我们会从第一列值中拉出id(在本例中)并将它们存储在idx:carousel中。我们还将每个INSERT存储为哈希。为此,我们将密钥轮播命名为:$ id并使用命令hmset。示例中的第一个INSERT将存储如下:

hmset carousel:3 path'7.jpg'title'Inspirar'评论'灵感'

这可能听起来比实际上复杂,但它非常简单。如果你认为有点太困难,我愿意为你写一个。

希望有所帮助。

答案 1 :(得分:0)

我不知道任何会自动执行此类操作的实用程序,您可能需要自己编写一个。您可以在http://redis.io/clients获取首选语言的客户端库。

这听起来像是一项相当简单的任务,但这种轻松程度将完全取决于您使用您所编写的语言的舒适度和体验。

答案 2 :(得分:0)

创建每列的Redis列表,并将每列的所有数据放在该列表中。并使哈希值存储每个表的列表。例如通过创建电子邮件,ID,用户名和姓氏列表以及包含电子邮件,ID,用户名的哈希值,可以将包含列电子邮件,ID,用户名,姓氏的表格存储在redis中。