如何使用键作为 Redis 中 JSON 中的字段之一来存储和检索值

问题描述 投票:0回答:1

我是 AWS Elasticache 的新手,并尝试在其中保存记录。 JSON 对象如下所示:

{
    "id": "100",
    "status": "complete",
    "items": [
                { "transactionNumber": "1", "type": "A"},
                { "transactionNumber": "2", "type": "B"}
            ]
    }

我想以这种方式保存,以便我可以通过 transactionNumber 或 id 搜索缓存的对象。

实现这一目标的最佳方法是什么? 我想知道我应该使用 JSON 还是 Hash 以及密钥应该是什么样子。

例如,如果通过 transactionNumber = 1 搜索,则期望只能看到项目内的单个记录。

caching redis spring-data-redis
1个回答
0
投票

除了哈希值(考虑到对象中的数组,这对于您的示例来说很难以良好的方式实现)和 JSON 之外,您还可以使用

SET
将对象存储为字符串。您选择哪种替代方案取决于您的用例。使用 JSON,您可以检索和存储对象的一部分。使用字符串,您需要检索并存储整个对象。

对象中的数组使存储策略具有挑战性。您需要将每个搜索词存储为键,一个键对应

id
(
id:<ID>
),一个或多个键对应每个
transactionNumber
(
tn:<TRANSACTION_NUMBER>
)。

© www.soinside.com 2019 - 2024. All rights reserved.