【问题标题】:Key - Value store that supports searching by valuesKey - 支持按值搜索的值存储
【发布时间】:2017-10-25 22:20:25
【问题描述】:

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

一开始,我开始使用Redis,问题是我需要在store中搜索,不仅要key,还要value(判断value是否存在,这种情况下不需要返回key)。

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

【问题讨论】:

    标签: postgresql redis key-value


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,我想我会用Redis,有set的解决方案会更方便。
    • 注意:在 Redis 中按值搜索并不总是微不足道的,虽然 Sets 可以走很长的路(和 Sorted Sets 更远)但挑战... ,查看 redisearch.io - 世界上最快的搜索引擎,构建为 Redis 模块。
    猜你喜欢
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    相关资源
    最近更新 更多