Key - 支持按值搜索的值存储

时间:2017-05-25 09:57:24

标签: postgresql redis key-value

我正在开发一个ASP.NET Web Api项目。对于我系统的一部分,我需要一个键值存储来存储字符串。键和值都是字符串(尽管它们可以很长)。键和值都是唯一的。

最初,我开始使用Redis,问题是我需要在商店内不仅通过密钥而且通过值进行搜索(确定值是否存在,在这种情况下无需返回密钥) 。

基本上,我有两个选项,第一个是使用项目的默认数据库 - PostgreSQL。否则我应该选择另一个支持上述操作的键值存储。你会建议哪个选项?如果第二个,哪个商店支持这样的操作?在性能方面哪个选项更好?

1 个答案:

答案 0 :(得分:1)

您需要的不是另一个数据存储,而是一个值索引。即使您使用postgresql或mongodb或其他东西,您仍然需要构建一个值索引来进行有效的值搜索。

对于redis解决方案,您可以使用额外的SET来存储所有值。如果要检查值是否存在,只需查找SET即可。当然,每当你添加一对新的kv时,你还需要更新SET

此外,使用Lua脚本,您可以在事务中进行两次更新操作。