返回顶部
首页 > 资讯 > 精选 >如何开发redis的二级缓存
  • 669
分享到

如何开发redis的二级缓存

2024-04-02 19:04:59 669人浏览 泡泡鱼
摘要

开发Redis二级缓存的示例:redis二级缓存的实现,主要是重写了Cache.java的方法,代码:public class  implements Cache {  

如何开发redis的二级缓存

开发Redis二级缓存的示例:

redis二级缓存的实现,主要是重写了Cache.java的方法,代码:

public class  implements Cache {

    private static final Logger logger = LoggerFactory.getLogger(mybatisRedisCache.class);

    private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();

    private RedisTemplate redisTemplate;

    private String id;

    

    private static final long EXPIRE_TIME_IN_MINUTES = 30;

    public (String id){

        if (id==null){

            throw new IllegalArgumentException("Cache instances require an ID");

        }

        logger.info("=====================================Redis cache id = "+id);

        this.id = id;

    }

    

    public String getId() {

        return id;

    }

    

    public void putObject(Object key, Object value) {

        logger.debug("==============================redis put= "+key);

        RedisTemplate redisTemplate = getRedisTemplate();

        ValueOperations opsForValue = redisTemplate.opsForValue();

        opsForValue.set(key, value, EXPIRE_TIME_IN_MINUTES, TimeUnit.MINUTES);

    }

    

    public Object getObject(Object key) {

        logger.debug("================================redis get================================");

        RedisTemplate redisTemplate = getRedisTemplate();

        ValueOperations opsForValue = redisTemplate.opsForValue();

        return opsForValue.get(key);

    }

    

    public Object removeObject(Object key) {

        logger.debug("==========================================redis remove==========================");

        RedisTemplate redisTemplate = getRedisTemplate();

        redisTemplate.delete(key);

        return null;

    }

    

    public void clear() {

        logger.debug("=====================================clear redis================================");

        RedisTemplate redisTemplate = getRedisTemplate();

        redisTemplate.execute(new RedisCallback() {

            @Override

            public Object doInRedis(RedisConnection connection) throws DataAccessException {

 大专栏  redis实现二级缓存

                connection.flushDb();

                return "OK";

            }

        });

    }

    @Override

    public int getSize() {

        return 0;

    }

    @Override

    public ReadWriteLock getReadWriteLock() {

        return readWriteLock;

    }

    public RedisTemplate getRedisTemplate() {

        if (redisTemplate == null) {

            redisTemplate = ApplicationContextHolder.getBean("redisTemplate");

        }

        return redisTemplate;

    }

    public void setRedisTemplate(RedisTemplate redisTemplate) {

        this.redisTemplate = redisTemplate;

    }

}

使用redisTemplate方法实现一个ApplicationContextHolder工具类,代码:

@Component

public class ApplicationContextHolder implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override

    public void setApplicationContext(ApplicationContext ctx) throws BeansException {

        applicationContext = ctx;

    }

    

    public static ApplicationContext getApplicationContext() {

        return applicationContext;

    }

    

    public static <T> T getBean(Class<T> clazz) {

        return applicationContext.getBean(clazz);

    }

    

    @SuppressWarnings("unchecked")

    public static <T> T getBean(String name) {

        return (T) applicationContext.getBean(name);

    }

}

在mapper中添加自定义cache,使用二级缓存,例如:

<cache type="com.yif.utils.MybatisRedisCache" eviction="LRU"/>

--结束END--

本文标题: 如何开发redis的二级缓存

本文链接: https://lsjlt.com/news/115954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何开发redis的二级缓存
    开发redis二级缓存的示例:redis二级缓存的实现,主要是重写了Cache.java的方法,代码:public class  implements Cache {  ...
    99+
    2024-04-02
  • mybatis二级缓存如何开启
    MyBatis的二级缓存默认是关闭的,如果需要开启二级缓存,可以按照以下步骤进行操作:1. 在MyBatis的配置文件中,添加以下配...
    99+
    2023-08-24
    mybatis
  • springboot如何开启二级缓存
    Spring Boot并不直接支持二级缓存的功能,但可以通过集成其他框架来实现。一种常见的做法是使用Spring Data JPA结...
    99+
    2023-08-24
    springboot
  • 如何利用Redis作为Mybatis的二级缓存
    目录前言要优雅就选择MyBATis-PlusRedis配置自定义Mybatis缓存测试缓存命中率(Cache Hit Ratio)一级缓存和二级缓存什么时候该开启二级缓存前言 今天在开发时发现一个奇怪的问题,我手动改完数...
    99+
    2022-08-11
    利用Redis作为Mybatis二级缓存 RedisMybatis二级缓存
  • 基于Spring Cache如何实现Caffeine+Redis二级缓存
    这篇文章主要为大家展示了“基于Spring Cache如何实现Caffeine+Redis二级缓存”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于Spring Cache如...
    99+
    2023-06-29
  • 使用MyBatis如何实现一级缓存与二级缓存
    这期内容当中小编将会给大家带来有关使用MyBatis如何实现一级缓存与二级缓存,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MyBatis缓存我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB...
    99+
    2023-05-31
    mybatis 一级缓存 二级缓存
  • 如何配置Hibernate二级缓存
    小编给大家分享一下如何配置Hibernate二级缓存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hibernate有很多值得学习的地方,这里我们主要介绍配置Hi...
    99+
    2023-06-17
  • hibernate怎么开启二级缓存
    要在Hibernate中开启二级缓存,需要完成以下步骤:1. 配置缓存提供程序:在Hibernate配置文件(通常是hibernat...
    99+
    2023-08-24
    hibernate
  • mybatis二级缓存怎么开启
    要开启MyBatis的二级缓存,需要在MyBatis的配置文件(如mybatis-config.xml)中进行相应的配置。以下是开启...
    99+
    2024-03-02
    mybatis
  • redis如何实现多级缓存
                                 ...
    99+
    2024-04-02
  • SpringBoot+Mybatis项目中如何使用Redis做Mybatis的二级缓存
    这篇文章给大家分享的是有关SpringBoot+Mybatis项目中如何使用Redis做Mybatis的二级缓存的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。介绍使用mybatis时可以使用二级缓存提高查询速度,...
    99+
    2023-05-30
    springboot redis mybatis
  • Mybatis 一级缓存与二级缓存的实现
    mybatis缓存 mybatis作为一个流行的持久化工具,缓存必然是缺少不了的组件。通过这篇文章,就让我们来了解一下mybatis的缓存。 mybatis缓存类型 说起mybati...
    99+
    2024-04-02
  • 如何使用Hibernate 3二级缓存
    这篇文章将为大家详细讲解有关如何使用Hibernate 3二级缓存,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.Hibernate3的二级缓存和session级别的缓存一样都只对实体对象做缓存,不对属...
    99+
    2023-06-17
  • MyBatis中一级缓存与二级缓存的区别
    今天就跟大家聊聊有关MyBatis中一级缓存与二级缓存的区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一级缓存一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sq...
    99+
    2023-05-31
    mybatis 一级缓存 二级缓存
  • 基于Spring Cache实现Caffeine+Redis二级缓存
    目录一、聊聊什么是硬编码使用缓存?二、Spring Cache简介1、Cache接口2、CacheManager接口3、常用注解说明三、使用二级缓存需要思考的一些问题?四、Caffe...
    99+
    2024-04-02
  • 关于Spring中一级缓存、二级缓存和三级缓存的那些事
    目录题记缓存作用分析一级缓存、二级缓存、三级缓存区别是什么总结题记 常常听到别人提起:“一级缓存、二级缓存、三级缓存”。那么它们是什么呢?有什么作用呢? 缓存...
    99+
    2024-04-02
  • Go应该如何实现二级缓存
    目录一、需求二、实现连接Mysql并执行查询语句三、写一个错误处理函数四、设置二级缓存一、需求 实现二级缓存 程序运行起来后提示:“请输入命令:”,如果输入geta...
    99+
    2024-04-02
  • Mybatis中一级缓存、二级缓存的示例分析
    这篇文章主要介绍了Mybatis中一级缓存、二级缓存的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解...
    99+
    2023-06-02
  • 如何使用redis开启缓存
    要使用Redis开启缓存,首先需要安装Redis并配置好相关参数。以下是一些基本步骤:1. 安装Redis:根据你的操作系统,选择合...
    99+
    2023-08-23
    redis
  • Hibernate二级缓存的使用
    Hibernate的二级缓存是一种在应用程序和数据库之间缓存数据的机制,以提高应用程序的性能和响应速度。使用Hibernate的二级...
    99+
    2023-09-20
    Hibernate
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作