使用Redis防止字符串重复

时间:2014-03-23 15:00:04

标签: redis

有没有正确的方法来防止使用Redis插入重复项?

我试图存储多个字符串,而键都需要是唯一的。我想让Redis 拒绝来创建字符串,如果它的值或其密钥已经存在。

谢谢!

2 个答案:

答案 0 :(得分:3)

我想应该有几种方法。

唯一性是否必须在一对键/值的范围内?也就是说,可以多次使用相同的,每个都与不同的密钥相关联?

如果是这样,其中一个更简单的(但一如既往 - 它实际上取决于你的用例和你需要的键/值对的数量,读/写比率等)是这样的:

使用SET类型的键。每个键只包含一个值(成员),而不是通常使用的集合来保存,即集合。

这样,无论何时尝试创建其名称已存在的密钥,Redis都会拒绝。每当您尝试为给定键创建一个值时,该值已经作为键集的成员存在,Redis也将拒绝。

答案 1 :(得分:2)

您可以先使用EXISTS命令检查密钥是否存在,然后使用SISMEMBER命令确定集合中的值是否存在,然后插入密钥值对。