二级缓存j2cache和SpringBoot整合

简介

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

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

与SpringBoot整合

本文一级缓存:Caffeine、二级缓存:Redis。

pom.xml 依赖

<dependency>
    <groupId>net.oschina.j2cachegroupId>
    <artifactId>j2cache-coreartifactId>
    <version>2.8.4-releaseversion>
dependency>
<dependency>
    <groupId>net.oschina.j2cachegroupId>
    <artifactId>j2cache-spring-boot2-starterartifactId>
    <version>2.8.0-releaseversion>
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);
    }
}

你可能感兴趣的:(SpringBoot,spring,boot,redis,缓存)