如何将SQL表转换为Redis数据

9

你好,我是redis的新手,希望能得到一些帮助。我正在使用java和sql server 2008以及redis服务器。为了与redis交互,我使用了java的jedis api。我知道redis用于存储基于键值的数据。每个键都有对应的值。

问题背景:

我有一个名为“user”的表,其中存储了id、name、email、age和country等数据。这是sql表的模式。现在这个表已经有了一些行(也就是一些数据)。现在我的主键是id,但它只是用于数据库,对于我的应用程序来说没有任何用处。

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

我想将这个表的数据存储到redis中。然后我也想在redis上执行类似的操作,比如搜索、插入、删除。但是如果我有一个好的“在数据库和Redis中存储此信息的设计”,那么这些操作将会非常简单。请记住,我还可以有多个表。因此,应该按表的基础将数据存储在redis中。

我的问题

您能提供任何设计或信息,告诉我如何将数据库数据转换为Redis并执行所有操作吗?我之所以问这个问题,是因为我知道Facebook也在使用redis存储数据。那么他们是如何存储数据的呢?

非常感谢您的任何帮助。


我认为你需要阅读ReDis文档 - 看起来有很多内容。 - simon at rcl
如果您包含了架构/字段以及您使用或计划使用的查询,那么可以提供更精确的答案。设计应该考虑到使用的概念。 - buckaroo1177125
1个回答

8
这是一个非常难回答的问题,因为你可以有多种方法来解决。我个人认为最好的方法是使用哈希表。这基本上是一种嵌套的键值对类型。所以您的键将匹配哈希表,因此您可以存储用户名、密码等。
其中一个问题是索引,您需要在键中存储ID。例如,每个用户必须拥有像这样的键:USER:21414 另外,除非您想查看KEYSSCAN命令,否则您将需要维护自己的用户列表进行迭代,只有在需要时才需要这样做。为此,您需要查看列表或排序集。
老实说,这个问题没有真正的答案,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 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接