二级缓存j2cache和SpringBoot整合

2023-11-07

简介

j2cache是开源的二级缓存库,支持实现:本地缓存Ehcache、Caffeine、远程缓存Redis、Memcached。常见解决方案 如一级缓存使用Ehcache、二级缓存使用Redis。

上篇描述的阿里开源的jetcache,是支持二级缓存,只是相比j2cache不够灵活,还不够完善,前者是缓存统一操作规范,而j2cache是专注二级缓存库。

与SpringBoot整合

本文一级缓存:Caffeine、二级缓存: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>

application.yml 配置

# 设置j2cache配置文件
j2cache:
  config-location: j2cache.properties

j2cache.properties

# 一级缓存
j2cache.L1.provider_class=caffeine
# 二级缓存
j2cache.l2-cache-open=true
j2cache.L2.provider_class=net.oschina.j2cache.cache.support.redis.SpringRedisProvider
j2cache.L2.config_section=redis
redis.hosts=192.168.126.181:6379
redis.timeout=2000
redis.password=123456
# 指定模式,可以消除一行警告信息
redis.mode=single
# 指定命名空间,可以作为key的公共前缀
redis.namespace=j2cache
# 一级缓存中的数据如何到达二级缓存
j2cache.broadcast=net.oschina.j2cache.cache.support.redis.SpringRedisPubSubPolicy

业务代码

import lombok.AllArgsConstructor;
import lombok.Data;
import net.oschina.j2cache.CacheChannel;
import net.oschina.j2cache.CacheObject;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class UserService {

    @Data
    @AllArgsConstructor
    public static class User {
        private String name;
        private Integer age;
    }

    // 模拟数据库
    List<User> userList = new ArrayList<>();

    private CacheChannel cacheChannel;

    public void add (User user) {
        // 插入数据库
        userList.add(user);
        // 设置缓存
        cacheChannel.set("user", user.getName(), user);
    }

    public void query(String name){
        CacheObject user = cacheChannel.get("user", name);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二级缓存j2cache和SpringBoot整合 的相关文章

随机推荐

  • MongoEngine中文文档

    一 简介 MongoEngine是一个基于pymongo开发的ODM库 对应与SQLAlchemy 同时 在MongoEngine基础上封装了Flask MongoEngine 用于支持flask框架 注 本文内容来自官方文档 地址 htt
  • 使用Prometheus operator 监控Kubernetes

    原文链接 http www unmin club 2020 07 prometheus operator 目录标题 一 Prometheus Operator介绍 二 Prometheus Operator安装 三 通过Ingress访问组
  • [机器学习与数据分析] 时间序列聚类方法

    聚类分析 cluster analysis 简称聚类 clustering 是根据事物自身的特性对被聚类对象进行类别划分的统计分析方法 其目的是根据某种相似度度量对数据集进行划分 将没有类别的数据样本划分成若干个不同的子集 这样的一个子集称
  • python爬虫之正则表达式练习——爬取百度图片

    1 明确需求 创建环境 第一步 明确需求 转换图片 需求 爬取百度图片中关于森林的图片 并保存 网址 https image baidu com search index tn baiduimage ipn r ct 201326592 c
  • C+++string类如何判断字符串为空

    string类是C STL类之一 有很丰富的接口 判断string为空是经常用到的操作 string类为空 实际也就是元素为0个 可以按照如下方式判断 1 string类有自己的成员函数empty 可以用来判断是否为空 string str
  • 函数及参数调用【Python-3】

    file author jUicE g2R qq 3406291309 彬 bin 必应 一个某双流一大学通信与信息专业大一在读的技术彩笔 brief python小白入门笔记 copyright 2022 8 COPYRIGHT 原创技术
  • maven编译时出现 There are test failures

    ERROR Failed to execute goal org apache maven plugins maven surefire plugin 2 10 test default test on project web nancha
  • UE4 通过函数名调用蓝图函数

    为了灵活 有时候需要通过函数名来调用本蓝图或其他蓝图中的函数 一般的用法如下 而通过函数名的用法如下 通过名称获取 设置变量的用法如下 通过名称获取 设置变量这个逻辑还是比较简单的 可以参考这里 http shootertutorial c
  • 【Nginx】基础概念和核心配置块

    文章目录 1 Nginx基础概念 2 命令和信号控制 2 1信号控制 2 2命令控制 3 Nginx核心配置文件结构 3 1全局块 3 1 1权限问题 3 1 2work process指令 3 1 3其他指令 3 2event块 3 3h
  • 遇到问题之-SecureCRT光标不显示鼠标消失终极解决办法

    SecureCRT有时候光标不显示 命令行编辑文档的时候特别麻烦 今天找出解决办法 选项 会话选项 仿真 将ANSI颜色选中 选项 会话选项 外观 将光标下的 使用颜色选中 闪烁选中 同时记得把颜色改成与背景色不同
  • C/C++代码缺陷静态检查工具cppcheck

    cppcheck介绍和安装 CppCheck是一个C C 代码缺陷静态检查工具 静态代码检查是检查代码是否安全和健壮 是否有隐藏问题 CppCheck只检查编译器检查不出来的bug 不检查语法错误 CentOS在线安装命令 yum inst
  • JVM初探:内存分配、GC原理与垃圾收集器

    http www importnew com 23035 html
  • MATLAB实现多元线性回归预测

    一 简单的多元线性回归 data txt 1 230 1 37 8 69 2 22 1 2 44 5 39 3 45 1 10 4 3 17 2 45 9 69 3 9 3 4 151 5 41 3 58 5 18 5 5 180 8 10
  • linux 下的 iptables/ netfilter 防火墙 深度理解 后篇

    一 概述 中篇已经提到了钩子函数的注册 也知道最终数据进来是通过钩子函数处理 来实现防火墙的功能的 那么netfilter 内核是在什么时候调用钩子函数 钩子函数又是怎么实现防火墙对应的功能的 本章主要讲钩子函数实现的过滤功能 二 调用钩子
  • 门控时钟电路(Intergrated clock gating)

    门控时钟 某些模块不需要工作的时候 为了降低功耗 需要关闭该模块的时钟 节省触发器的翻转功耗 采用门控时钟电路来控制时钟的关断 本文大量引用了知乎门控时钟的图片和一些文字描述 简单的与门 最初的思路是采用一个使能信号en和一个与门来控制时钟
  • 恒玄BES调试笔记

    基于恒玄平台开发TWS耳机 常用的有BES2300系列 BES2500系列 以及即将开发的BES2600 其实都差不多 本笔记基于恒玄BES2500YA芯片给某大客户开发TWS耳机 是项目开发过程的一些笔记 由于博主精力有限 不喜欢长篇大论
  • 以太网是什么拓扑结构

    以太网采用的拓扑结构是总线型拓扑 以太网是一种计算机局域网技术 目前的快速以太网为了减少冲突 将能提高的网络速度和使用效率最大化 使用交换机来进行网络连接和组织 以太网是一种计算机局域网技术 IEEE组织的IEEE 802 3标准制定了以太
  • Html select标签

    Select 创建 Form 事件 属性 选中 创建 直接撸代码
  • PageHelper分页+排序

    PageHelper分页 排序 使用pageHelper插件来分页 只需在执行sql前用即可 String orderBy 排序字段 desc 按照 数据库 排序字段 倒序 排序 PageHelper startPage pageNum p
  • 二级缓存j2cache和SpringBoot整合

    简介 j2cache是开源的二级缓存库 支持实现 本地缓存Ehcache Caffeine 远程缓存Redis Memcached 常见解决方案 如一级缓存使用Ehcache 二级缓存使用Redis 上篇描述的阿里开源的jetcache 是