代码拉取完成,页面将自动刷新
同步操作将从 YRain/smart-cache 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Java distributed second-level cache, which is achieved based on Ehcache2 and Redis, can realize cache monitoring and fetching of multi-computer cluster at all levels besides basic operations.
基于Ehcache2和Redis实现的Java分布式二级缓存.除基本操作以外实现多机集群时各级缓存的监管和抓取.
mvn clean install -Dmaven.test.skip=true
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-cache</artifactId>
<version>${VERSION}</version>
</dependency>
<!-- Redis -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.max.total:1024}"/>
<property name="minIdle" value="${redis.min.idle:256}"/>
<property name="maxIdle" value="${redis.max.idle:256}"/>
<property name="maxWaitMillis" value="${redis.max.wait.millis:3000}"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" />
</bean>
<bean id="jedisTemplate" class="com.smart.jedis.JedisTemplate">
<property name="jedisPool" ref="jedisPool" />
</bean>
<!-- Smart Cache -->
<bean id="cacheTemplate" class="com.smart.cache.CacheTemplate" destroy-method="shutdown">
<property name="jedisTemplate" ref="jedisTemplate" />
</bean>
cacheTemplate.set(name, key, value);// 设置
cacheTemplate.get(name, key);// 获取
cacheTemplate.del(name, key);// 删除
cacheTemplate.rem(name);// 删除name下所有缓存
cacheTemplate.cls();// 清空所有缓存
cacheTemplate.fetch(name, key);// 抓取集群下所有单机一级缓存
cacheTemplate.ttl(name, key, level);// 获取缓存ttl
cacheTemplate.names();// 获取所有缓存name
cacheTemplate.keys(name);// 获取name下所有key
cacheTemplate.size(name);// 获取name下缓存数量
cacheTemplate.values(name);// 获取name下缓存值
见:smart-cache/src/test/java/com/smart/cache/App.java
<cache:annotation-driven cache-manager="cacheManager" proxy-target-class="true"/>
<bean id="cacheManager" class="com.smart.cache.spring.CacheManager">
<property name="cacheTemplate" ref="cacheTemplate" />
</bean>
<dependency>
<groupId>com.smart</groupId>
<artifactId>smart-cache-autoload</artifactId>
<version>${VERSION}</version>
</dependency>
<bean id="cacheTemplateManager" class="com.smart.cache.autoload.CacheManager" destroy-method="destroy">
<constructor-arg ref="autoLoadConfig" />
<constructor-arg ref="cacheSerializer" />
<constructor-arg ref="scriptParser" />
<constructor-arg ref="cacheTemplate" />
</bean>
<servlet>
<servlet-name>SmartCache</servlet-name>
<servlet-class>com.smart.servlet.CacheAdminServlet</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>admin</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SmartCache</servlet-name>
<url-pattern>/smartcache/*</url-pattern>
</servlet-mapping>
注意: 若修改了序列化方式,务必清空Redis上原缓存数据
<!-- Serializer -->
<bean id="stringSerializer" class="com.smart.serializer.StringSerializer" />
<bean id="fstSerializer" class="com.smart.serializer.FSTSerializer" />
<bean id="fastjsonSerializer" class="com.smart.serializer.FastjsonSerializer" />
<!-- Redis -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.max.total:1024}"/>
<property name="minIdle" value="${redis.min.idle:256}"/>
<property name="maxIdle" value="${redis.max.idle:256}"/>
<property name="maxWaitMillis" value="${redis.max.wait.millis:3000}"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
<constructor-arg name="host" value="${redis.host}" />
<constructor-arg name="port" value="${redis.port}" />
</bean>
<bean id="jedisTemplate" class="com.smart.jedis.JedisTemplate">
<property name="jedisPool" ref="jedisPool" />
<property name="keySerializer" ref="stringSerializer" /><!-- key默认使用string序列化 -->
<property name="valSerializer" ref="fstSerializer" /> <!-- val默认使用fst序列化 -->
</bean>
<!-- Smart Cache -->
<bean id="cacheTemplate" class="com.smart.cache.CacheTemplate" destroy-method="shutdown">
<property name="key" value="smart" /><!-- Redis前缀 -->
<property name="spliter" value=":" /><!-- Redis分隔符 -->
<property name="localEnabled" value="true" /><!-- 是否启用本地缓存 -->
<property name="setCmdEnabled" value="false" /><!-- 是否启用set通知 -->
<property name="localStoreLocation" value="/cache/" /><!-- 本地缓存存储磁盘位置 -->
<property name="localMaxBytesLocalHeap" value="128M" /><!-- 本地缓存最大内存大小 -->
<property name="localMaxBytesLocalDisk" value="1024M" /><!-- 本地缓存最大磁盘大小 -->
<property name="localTimeToLiveSeconds" value="600" /><!-- 本地缓存10分钟过期 -->
<property name="localDiskExpiryThreadIntervalSeconds" value="180" /><!-- 本地缓存3分钟清理一次 -->
<property name="fetchTimeoutSeconds" value="3" /><!-- fetch命令最长等待3秒 -->
<property name="jedisTemplate" ref="jedisTemplate" /><!-- jedis操作类 -->
</bean>
见:smart-cache/src/test/java/spring.xml
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg index="0">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3001" type="int" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3002" type="int" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3003" type="int" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3004" type="int" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3005" type="int" />
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="192.168.1.157" />
<constructor-arg index="1" value="3006" type="int" />
</bean>
</set>
</constructor-arg>
<constructor-arg index="1" value="2000" type="int"></constructor-arg>
<constructor-arg index="2" value="100" type="int"></constructor-arg>
<constructor-arg index="3" ref="jedisPoolConfig"></constructor-arg>
</bean>
<bean id="jedisTemplate" class="com.smart.jedis.JedisTemplate">
<property name="jedisCluster" ref="jedisCluster"/>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1" value="${redis.host}" />
<constructor-arg index="2" value="${redis.port}" />
<constructor-arg index="3" value="${redis.timeout:3000}" />
<constructor-arg index="4" value="${redis.pass}" />
</bean>
QQ:20365124 email:yrain@live.cn
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。