spring boot 整合j2cache 基础操作

spring boot 整合缓存的内容呢 已经学了好久了
那么 今天 我们开始学习 j2cache

这个技术 并不是一个缓存 而是一个框架 我们可以将其他缓存配到这套框架上来

那么 我们就还是弄最熟悉的 ehcache + redis进行整合

首先 我们启动 redis
在这里插入图片描述
然后 我们打开项目 pom.xml 注入依赖

<dependency>
	<groupId>net.oschina.j2cache</groupId>
	<artifactId>j2cache-core</artifactId>
	<version>2.8.4-release</version>
</dependency>

<dependency>
	<groupId>net.oschina.j2cache</groupId>
	<artifactId>j2cache-spring-boot2-starter</artifactId>
	<version>2.8.0-release</version>
</dependency>
<dependency>
	<groupId>net.sf.ehcache</groupId>
	<artifactId>ehcache</artifactId>
</dependency>

第一个 是 j2cache 的核心包 第二个是 j2cache与spring bott整合的工具
然后 最后是 ehcache的包 因为我们还需要用 ehcache

配置文件 application.yml 加入如下内容

j2cache:
  config-location: j2cache.properties

在这里插入图片描述
然后 我们在 resources 目录下创建一个文件 如下图
在这里插入图片描述
叫 j2cache.properties
这就是 j2cache 配置文件了

然后 同目录 我们再创建一个 ehcache.xml
编写 ehcache的配置
编写代码如下

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="https://www.ehcache.org/ehcache.xsd"
         updateCheck="false">
    <diskStore path="D:\ehcache" />

    <!--默认缓存策略 -->
    <!-- external:是否永久存在,设置为true则不会被清除,此时与timeout冲突,通常设置为false-->
    <!-- diskPersistent:是否启用磁盘持久化-->
    <!-- maxElementsInMemory:最大缓存数量-->
    <!-- overflowToDisk:超过最大缓存数量是否持久化到磁盘-->
    <!-- timeToIdleSeconds:最大不活动间隔,设置过长缓存容易溢出,设置过短无效果,可用于记录时效性数据,例如验证码-->
    <!-- timeToLiveSeconds:最大存活时间-->
    <!-- memoryStoreEvictionPolicy:缓存清除策略-->
    <defaultCache
            eternal="false"
            diskPersistent="false"
            maxElementsInMemory="1000"
            overflowToDisk="false"
            timeToIdleSeconds="60"
            timeToLiveSeconds="60"
            memoryStoreEvictionPolicy="LRU" />

    <cache
            name="smscode"
            eternal="false"
            diskPersistent="false"
            maxElementsInMemory="1000"
            overflowToDisk="false"
            timeToIdleSeconds="10"
            timeToLiveSeconds="10"
            memoryStoreEvictionPolicy="LRU" />

</ehcache>

在这里插入图片描述
j2cache.properties 编写代码如下

# 1级缓存
j2cache.L1.provider_class = ehcache
ehcache.configXml = ehcache.xml

# 2级缓存
j2cache.L2.provider_class =net.oschina.j2cache.cache.support.redis.SpringRedisProvider
j2cache.L2.config_section = redis
redis.hosts = localhost:6379

# 1级缓存中的数据如何到达2级缓存
j2cache.broadcast =net.oschina.j2cache.cache.support.redis.SpringRedisPubSubPolicy

简单说 就是 告诉它 你第一个用什么 我们用 ehcache 然后 第二级缓存 用 redis

然后 我们要在实现这个逻辑的 地方 条件装配一个 CacheChannel
在这里插入图片描述

@GetMapping("/get")
public String getMin(){
    String code2 = cacheChannel.get("book", "1").asString();
    System.out.println(code2);
    return code2;
}

@RequestMapping(value = "/set", method = RequestMethod.POST)
@ResponseBody
public String setBook(@RequestBody book bindata) {
    cacheChannel.set("book","1",bindata.getName());
    return bindata.getName();
}

简单说 拿着我们的 cacheChannel 对象 调用 set方法
set接受三个参数 名称 key表示 数据
get 接受 名称 key表示 然后返回的 我们可以通过 asString 转为字符串类型
然后读出来
在这里插入图片描述
然后 我们启动项目
在这里插入图片描述
然后 我们先执行set
在这里插入图片描述
再来get
在这里插入图片描述
然后 我们到 redis 中 keys *
执行
在这里插入图片描述
这边 也明显查到了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值