多级缓存组件的使用

多级缓存组件使用方式
1.pom引入maven地址
2.加入相应的注解
3.在runtimecfg加入资源文件
内容如下:

multiCache.properties

cache_L1=REDIS

#cache_L2=MEMCACHED

memcached.xml

<?xml version="1.0" encoding="UTF-8"?>

<memcached>

<!-- name:Cache的唯一标识;socketpool:关联到后面的socketpool配置;errorHandler:可选,用来处理出错情况-->

<client name="defaultClient" compressEnable="true" defaultEncoding="UTF-8" socketpool="defaultPool">

<errorHandler>com.alisoft.xplatform.asf.cache.memcached.MemcachedErrorHandler</errorHandler>

</client>

<!-- 

failover:设置故障转移 ;maintSleep:后台线程管理SocketIO池的检查间隔时间,如果设置为0,则表明不需要后台线程维护SocketIO线程池,默认需要管理

socketTO:Socket操作超时配置,单位ms;aliveCheck:表示在使用Socket以前是否先检查Socket状态

-->

<socketpool name="defaultPool" failover="true" initConn="1" minConn="1" maxConn="10" maintSleep="30000"

nagle="false" socketTO="3000" aliveCheck="true">

<servers>172.17.106.14:12801</servers>

</socketpool>

</memcached>

redis-conf.properties文件

sentinels=127.0.0.1:7011

masterName=mymaster

maxTotal=20

maxIdle=5

maxWaitMillis=1000

testOnBorrow=true

testOnReturn=true

timeout=2000

newVersion=true

即可,就可以通过注解的方式实现多级缓存。

@MultiCache(key="getMerchant",fieldKey="#name",cacheType="")


多级缓存组件的功能
1.支持缓存类型,redis,memcache,encache,在mutiCache.properties资源文件中指定缓存等级
1)注解方式中cacheType表示缓存类型,若指定redis,则会王redis存入数据,数据key的生成规则是类名+方法名,存储格式是hash形式,参数作为hash中的域
2)注解方式指定memcached,则会存储在memcached.xml文件指定的地址中,数据key是类名+方法名.参数
3)注解方式指定为"",会按照mutiCache.properties文件指定的缓存等级,依次存入数据,key规则如上
2.查询数据,缓存没有,查询数据库,数据库返回null,不会放入缓存,防止受到攻击往缓存服务器存入了大量无用数据,造成内存溢出,集群宕机。
3.二级缓存模式下,for循环查询10次同一条数据,缓存没有,查询数据库,依次一二级存入数据了
这时候手动删除一级服务器缓存,发现自动降级到二级缓存中查找
手动删除二级服务器缓存,发现到数据库查询数据并且再次给一二级缓存放数据了
检查一二级缓存服务器,有数据了
4.当数据库更新的时候,没有更新缓存,而是直接删除缓存了

猜你喜欢

转载自blog.csdn.net/zhangxiaomin1992/article/details/78319505
今日推荐