【问题标题】:How to disable z-operations in Spring Redis Template如何在 Spring Redis 模板中禁用 z 操作
【发布时间】:2016-09-07 05:17:11
【问题描述】:

简而言之:如何在 spring.data.redis 版本 1.7.1.RELEASE 中禁用 redis Z-commands?

我们运行的是 springframework.data.redis.RedisCache 的早期版本 该版本使用 redis z-operations 来维护键名索引,以便在诸如 cache.clear() 等 gang 操作中使用。

我们发现这些 Z 操作的成本非常高,因此我们重新编写了 RedisCache(它最初都标记为受保护!:())以排除所有 z 操作。 这很好用.. 但我注意到这个项目已经走了很长一段路,肯定有一种方法可以使用 config 来防止这些昂贵的操作吗?

【问题讨论】:

    标签: java redis spring-data jedis


    【解决方案1】:

    总之

    你不能简单地做到这一点。

    说明

    禁用排序集命令的唯一方法是在 Redis 上重命名命令或提供自己的 RedisTemplate 实现。

    RedisCache 使用排序集来隔离缓存数据并在缓存条目级别实现过期。如果您使用的是 Spring Boot,提供一个自己的 CacheManager bean 就足够了,因此缓存自动配置不会启动。

    我们始终感谢有关如何改进的反馈。如果您想贡献或讨论改进,请随时在our Jira 中创建票证。

    顺便说一句,Spring Data Redis 1.7 是最新版本

    【讨论】:

    • 感谢您的反馈。我意识到模板和底层redis实现之间存在一些冲突。鉴于模板是通用的,并且旨在与 ehcache、memcached 等同样工作。Redis 并没有真正的“缓存”的基本概念,而是全部由键名完成。所以为了让redis有一个“缓存”的概念(实现spring模板接口),使用了这些排序集。虽然看起来真的没必要……有机会我会尝试提交票
    猜你喜欢
    • 1970-01-01
    • 2022-10-05
    • 2021-03-04
    • 2020-06-29
    • 1970-01-01
    • 2015-12-20
    • 2017-08-23
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多