Zebra分级缓存使用

springboot提供cache支持,zebra扩展了此项功能,使用分级缓存:

一级缓存:

本地缓存,存放少量热点数据;

二级缓存:

远程redis缓存,可以存放大量数据,数据大小根据redis机器的内存来确定;

这样做的好处

1、少量热点数据可以缓存在本地,减少网络开销,大大提升性能;

2、应用服务器的内存是有限,在数据量很大的时候使用redis容易扩容;

zebra分级缓存使用

配置项:


zebra.cache.first=name: cacheName;option:initialCapacity=5,maximumSize=500,expireAfterWrite=100s


zebra.cache.secondary=name cacheName1;option:usedFirstCache:true,forceRefresh=false

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=192.168.99.100

# Redis服务器连接端口

spring.redis.port=32770

# Redis服务器连接密码(默认为空)

spring.redis.password=

spring.redis.lettuce.pool.max-active=8

spring.redis.lettuce.pool.max-wait=-1

spring.redis.lettuce.shutdown-timeout=100

spring.redis.lettuce.pool.max-idle=8

spring.redis.lettuce.pool.min-idle=0



启动添加注释


@SpringBootApplication


@ZebraConf(confName="com.guosen.examples.service.client")


@EnableAsync


@EnableCaching


public class App {


    public static void main(String[] args) throws Exception {


        ZebraRun.run(args, App.class,true);


    }


}



代码:


@Component


public class CacheService {


    @Cacheable(value = "cacheName")


    public String getName(String name) {


        System.out.println("获取值 from method");


        return name + 123;


    }


    @CachePut(value = " cacheName ", key = "#p.id")


    public String getName(Person p) {


        System.out.println("获取值 from method");


        return p.getName() + 123;


    }


    @CacheEvict(value = " cacheName ", key = "#id") // 2


     public void remove(Long id) {


            System.out.println("删除缓存");


    }


}



Zebra分级缓存使用_第1张图片
zebra

你可能感兴趣的:(Zebra分级缓存使用)