Azure Redis缓存和RedisJSON,可能的替代方案

vbopmzt1  于 2022-10-31  发布在  Redis
关注(0)|答案(3)|浏览(222)

我正在考虑为我们的一个应用程序使用Azure Redis缓存。在某些情况下,我们需要存储纯JSON,这是最好的practices section clearly recommends against。我对Redis非常陌生,我正在研究可能的模式来满足我们的需求,我不确定我的方法是否违反了这些最佳实践。
我想要实现的模式是这样的:

  1. Cosmos数据库中的项目发生更改
    1.解析更改摘要以查找更新的项目
    1.更新后的物品被序列化并写入Redis
    1.稍后查询系统时,请先寻找快取的项目。如果存在,请撷取并还原序列化。如果不存在,请查询Cosmos。
    SET和GET将在应用程序的两个完全独立的部分中进行。永远不会有这样的场景,我将检索、修改和设置,因为Cosmos文档充当中间体,永远不会触发同时写入。当查询系统时,如果文档存在,则该高速缓存始终是最新的。
    我真的搞不清楚的是,我的方法是否会带来上述数据丢失的风险:
    更糟糕的是,许多应用程序只会获取整个JSON字符串,在应用程序中对它进行反序列化、操作、重新序列化和SET。这是一种反模式。使用这种方法真实的丢失数据的风险。
    他们接着建议使用RedisJSON,它必须在数据库级别激活。
    不幸的是,这似乎不可能与Azure Redis缓存,或者至少我找不到任何文档或任何选项,以做到这一点,同时创建资源,而不是当它已经创建.
    1.是否可以将RedisJSON与Azure Redis缓存一起使用?
    1.如果不是第一条,有没有其他推荐的方法来存储JSON数据,或者我建议的方法是一个可行的解决方案?

更新

我通过监听我希望缓存在Azure Function中的容器的更改提要来解决这个问题。这种模式有一个单独的应用程序示例写入一个唯一的文档,并且阅读完全独立发生,永远不会更改缓存的值。
如果插入或更新了整个文档,更改摘要将接收该文档,但不会删除该文档。由于接收了整个文档,因此在某些情况下可以轻松地该高速缓存无效,或者添加软删除值以完全删除该文档。

t98cgbkg

t98cgbkg1#

是否可以将RedisJSON与Azure Redis缓存一起使用?
您可以使用Redis Cloud在Azure上使用RedisJSON轻松创建Redis,请参阅:https://redis.com/redis-enterprise-cloud/pricing/

iecba09b

iecba09b2#

是否可以将RedisJSON与Azure Redis缓存一起使用?
我认为Azure Redis https://learn.microsoft.com/en-us/answers/questions/709524/when-can-expected-redis-json-module-support-with-a.html不支持此功能
我还实现了一个Azure Redis缓存的解决方案来保存JSON文档,我将转义的json字符串保存到Redis值中

相关问题