如何将SQL表转换为Redis数据

Mr3*_*037 6 java mysql sql redis jedis

嗨,我是redis的新手,想要一些帮助.我正在使用java和sql server 2008和redis服务器.要与redis交互,我正在使用jedis api for java.我知道redis用于存储基于键值的东西.每个键都有值.

问题背景:

我有一个表名"user",它存储id,姓名,电子邮件,年龄,国家等数据.这是sql表的模式.现在这个表有一些行(也就是说一些数据).现在我的主键是id,它只是用于数据库使用它在应用程序中对我没用.

现在在sql中我可以插入新行,可以更新一行,可以搜索任何用户,可以删除用户.

我想将这些表数据存储到redis中.然后我想在redis上执行类似的操作,比如搜索,插入,删除.但如果我在"在DB和Redis中存储此信息"有一个好的设计,那么这些操作将简单地执行.记住我也可以有多个表.所以应该根据表格将数据存储在redis中.

我的问题

任何设计或信息,您可以告诉我如何将数据库数据转换为Redis并执行所有操作.我问这个是因为我知道Facebook也在使用redis来存储数据.然后他们如何存储数据.

任何帮助都会非常感激.

Joe*_*rty 6

这是一个很难回答的问题,因为您可以通过多种方式来做。

我认为最好的方法是使用哈希。这基本上是一个嵌套的嵌套键值类型。因此,您的密钥将与哈希匹配,以便您可以存储用户名、密码等。

一个问题是索引,您需要在键中存储一个 ID。例如,每个用户都必须有一个像:USER:21414

第二件事,除非您想查看类似的命令,KEYS否则SCAN您将不得不维护自己的用户列表以进行迭代,仅当您需要这样做时。为此,您需要查看列表或排序集。

老实说,这个问题没有真正的答案,SQL 样式数据并没有以任何实际方式映射到键值。你通常需要自己做更多的工作。

我建议尽可能多地阅读,并从这里开始http://redis.io/commands和这里http://redis.io/documentation

我没有使用 Jedis 的经验,所以我在这方面无能为力。如果你想要一个例子,我有一个开源社交网站,它使用 Redis 作为唯一的数据存储。您可以查看代码以获取一些想法https://github.com/pjuu/pjuu/blob/master/pjuu/auth/backend.py。它使用 Python,但 Redis 在任何地方都非常容易使用,不会有太大区别。

编辑:我上面的网站不再仅使用 Redis。需要检查较旧的分支,例如 0.4 或 0.3 :)