Spring Data Redis中Redis Repositories的限制

Redis Repositories是什么?

使用Redis存储库可以无缝地将领域对象转换并存储在Redis散列中,应用自定义映射策略并使用辅助索引。

Sprint Data Redis是一种便利的功能,可以无缝地将Java对象和Redis Hash进行导入和导出,并进行索引管理。

限制

由于在保存时没有事务来执行删除和插入操作(无覆盖保存),所以根据时机看起来可能没有键。如果频繁进行保存和读取操作,就会出现这种情况。

相关选项的来源。

请将以下内容用中文进行本地化改写,只需要一种选项:L234-236

            boolean isNew = connection.del(objectKey) == 0;

            connection.hMSet(objectKey, rdo.getBucket().rawMap());

結論 – 结果

我认为您可以选择理解并使用上述限制,或者选择不使用Redis存储库。

补充

我得到了一个建议,可以使用“13.9.持久性部分更新”这个功能。
https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.repositories.partial-updates
https://jira.spring.io/browse/DATAREDIS-1253

尽管不能说Java对象和Redis哈希可以无缝地互相导入导出,但由于索引会更新,所以可以将INSERT作为save,将UPDATE作为部分更新来使用。

我找到了遇到相同问题的人,并获得了相同的建议。