首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Hibernate上使用Redis作为L2缓存?

如何在Hibernate上使用Redis作为L2缓存?
EN

Stack Overflow用户
提问于 2020-09-19 04:55:37
回答 2查看 1K关注 0票数 2

我有一个spring启动应用程序,需要在hibernate上将Redis设置为l2缓存。

我的prop文件如下所示:

代码语言:javascript
复制
spring.jpa.properties.hibernate.cache.region.factory_class = package.CustomRegionFactory
spring.jpa.properties.hibernate.cache.redisson.fallback=false

我创建了一个自定义区域工厂,因为我不想使用json或yaml文件。(现在,参数是硬编码的)。CustomRegionFactory类如下所示:

代码语言:javascript
复制
public class CustomRegionFactory extends RedissonRegionFactory {

    @Override
    public RedissonClient createRedissonClient(Properties properties) {     
        Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6379").setRetryInterval(1500)
                .setRetryAttempts(3).setConnectTimeout(10000)
                .setClientName("client1");

        return Redisson.create(config);
    }
}

使用redis-cli时,我发现在使用keys *命令时,列出了所有使用@Cacheable注释的实体。在此之前,我认为一切都很好,但是使用postgres日志资源,我发现查询正在命中数据库。

有没有人有让它工作的小贴士?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-31 01:34:18

我发现在hibernate中使用@Cacheable可以解决所有问题。

票数 0
EN

Stack Overflow用户

发布于 2020-09-19 20:57:06

您应该使用.setCachable(true)在hibernate级别进行缓存查询。请参阅this文档。

另请参阅有关hibernate上二级缓存的this问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63962733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档