【发布时间】:2017-04-24 21:30:47
【问题描述】:
所以我一直在尝试使用 Jedis 将我们的数据库从 mysql 迁移到 Redis。我明白在 Redis 上,一切都是关键和价值。但我有几个基本问题。
1) 假设我有一个 Mammals 类,其成员为 eyes,ears,nose,hand,legs。所以现在我可以有多个值,例如
2,2,1,2,2
2,3,1,1,2
1,2,1,6,2
每一行表示他们拥有的数字。 2个眼睛,2个耳朵,1个鼻子,2个手,2个腿。
我想存储这些数据,就像我们以前在 mySQL 中所做的那样,在那里,每一列都会有它们的值。但是使用Jedis 我该如何实现呢?
我尝试使用自动递增键值并使用jedis.sadd(jedis.get("counter"),stringg_value) 存储所有这些值
当我尝试使用索引打印任何值时,我可以非常清楚地看到, 值不是我添加的顺序。如果我将字符串值添加为“一、二、三、四”,结果将是“四、二、三、一”。而且这是非常随机的,并不是所有的值都会采用这种格式,它们也会发生变化。
我的问题是如何将 csv 格式的数据存储到 Redis 中?
2) 如何根据多个条件从Jedis 获取数据。像哺乳动物一样,有 2 只耳朵、2 只眼睛和 4 只手。我应该使用什么方法?
【问题讨论】:
-
RDBMS 和键值存储是不同的东西。您正在亲眼观察其中的一些差异。为正确的工作使用正确的工具。从 MySQL“迁移”到 Redis 就像把你的汽车变成一艘船。
-
我明白你在说什么,但是我有一个要求,我必须选择-插入-选择某些数据匹配模式。在那里,SQL 花费了太多时间,但我相信在那种情况下,redis 会像魅力一样工作。
-
我尝试优化 SQL 端,但无论是否经常,我都会得到某种锁定,最终导致系统变慢。整个计算大约需要 150 毫秒,但是这些许多 SQL 连接最终需要大约 250 毫秒才能完成。我仍在探索这些选项。
-
听起来您对 SQL 也不是很熟悉。在这种情况下,改变技术并没有真正的帮助。一个更好的主意是创建一个新问题来解释您的 SQL 问题。它可能会比这个解决得更快。
-
你说得对,没有经验,希望得到一些关于如何摆脱缓慢的指导。这是我之前在 SO 上发布的问题之一:stackoverflow.com/questions/42899224/…