2

我指的是@Sripathi Krishnan 对 SO 上提出的问题给出的这个很好的答案:Redis 只是一个缓存

我正在尝试学习如何使用 redis,而我的研究让我想到了关于 SO 的问题。

有人可以解释一下代码中这两行的原因,因为我仍然发现很难理解它们在 Sripathi 在答案中给出的代码中的用处。

$ HINCRBY unique_ids question 1
$ HINCRBY unique_ids answer 1  

我知道它创建了一个以“unique_ids”为键的散列,其中“问题”和“答案”字段首先初始化为 0,然后增加到 1。除此之外,我看不到 unique_ids 键与流程的任何链接但我不确定我的菜鸟脑子是否遗漏了一些东西。

4

1 回答 1

2

这些命令只是生成合成主键的一种方式。

在 Sri 的示例中,人们可以在系统中添加问题和答案。这些实体需要被引用,因此它们需要通过唯一键来标识。您可能会想象为此使用某种UUID机制,但使用数字键通常更简单。

unique_ids 只是一个方便的容器,用于存储系统中存储的对象的下一个可用键。要添加新问题,只需增加 unique_ids 的 question 字段(Redis 的原子操作),并将返回的值作为新问题的键。它保证所有新问题都将具有不同的关键值。

在关系数据存储中,此类功能由序列(Oracle、PostgreSQL)或自动增量主键(MySQL)提供。

于 2012-07-07T09:53:03.893 回答