gpt4 book ai didi

java - 如何在Jedis中使用Redis中的多个键?次要指标

转载 作者:行者123 更新时间:2023-12-03 06:44:43 24 4
gpt4 key购买 nike

Redis是否支持字符串数据类型的二级索引?
我想知道如何将数据与seconday键一起存储在redis中。
示例让我说我想存储键值为“id: ”的实体,并将其有效载荷作为压缩的json字符串。但有时我需要用json中的另一个值来搜索有效负载,该值也可能是唯一的。
像SQL查询,我可以查询除键以外的JSON中的其他字段吗?
另外,我想知道在使用主键在Redis中设置值时,如何为它设置辅助索引值。

最佳答案

“有时我需要用json中的另一个值搜索有效负载”
您不能,Redis不是为此而构建的。 Redis快速,主要用于键值存储。如果json中有很多要索引的字段,则需要一个关系数据库。是的,您可以使用redissearch.io,尽管您应该注意它的免费版本不允许您在AWS或Azure等平台上使用,您必须部署自己的Redis,并且它不支持redis-cluster。因此,如果您仅使用关系数据库或Elasticsearch,那就更好了。
但是,如果您只需要一个或两个额外的索引来找到值(您的情况下为json有效负载),则可以有效地实现它。
将您的json存储为redis STRING

{"someKey","your json payload"}


这里没什么异常。
或更好,如redis HASH

{"myRedisHash",[{"someKey",""your json payload"},{"anotherKey","another json"}]}


(哈希可在STRING上节省一些内存)
然后将第二个索引存储在redis HASH中

{"mySecondIndexHash",[{"second_index_1",""someKey"},{"second_index_2","anotherKey"}]}


因此,它基本上将您的second_index映射到您的主键。在更新主值STRING / HASH时,您将维护第二个索引哈希。对第三,第四索引执行相同的操作。
请注意,多个操作不是原子操作,如果对您来说很重要,则应使用Lua脚本编写它们。

关于java - 如何在Jedis中使用Redis中的多个键?次要指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62893106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com