- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
您好,我是 Redis 的新手,想在这里得到一些帮助。我正在使用 java 和 sql server 2008 以及 redis 服务器。为了与 redis 交互,我正在使用 jedis api for java。我知道redis是用来存储基于键值的东西的。每个键都有值。
问题背景:
我有一个名为“user”的表,其中存储了 id、姓名、电子邮件、年龄、国家/地区等数据。这是sql表的模式。现在这个表有一些行(也意味着一些数据)。现在,我的主键是 id,它仅供 DB 使用,在应用程序中对我没有用。
现在在 sql 中我可以插入新行,可以更新行,可以搜索任何用户,可以删除用户。
我想将此表数据存储到 redis 中。然后我也想对redis进行类似的操作,比如搜索、插入、删除。但是,如果我对“将此信息存储在 DB 和 Redis 中”进行了良好的设计,那么这些操作将被简单地执行。请记住,我也可以有多个表。所以应该以表的形式将数据存入redis。
我的问题
任何设计或信息都可以告诉我如何将数据库数据转换为 Redis 并执行所有操作。我问这个是因为我知道 Facebook 也在使用 redis 来存储数据。然后是他们如何存储数据。
任何帮助将不胜感激。
最佳答案
这是一个很难回答的问题,因为您可以通过多种方式来回答。
我认为最好的方法是使用哈希。这基本上是一个嵌套的嵌套键值类型。因此您的 key 将与散列匹配,以便您可以存储用户名、密码等。
一个问题是索引,您需要在键中存储一个 ID。例如,每个用户都必须有一个 key ,如: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 :)
关于java - 如何将 SQL 表转换为 Redis 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25810077/
我是一名优秀的程序员,十分优秀!