网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

SpringBoot中怎么配置单点Redis缓存

今天就跟大家聊聊有关SpringBoot中怎么配置单点redis缓存,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序制作,十多年建站对成都广告设计等多个领域,拥有丰富的网站建设经验。

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

import java.lang.reflect.Method;

/**
 * redis 缓存配置;
 * 

 * 注意:RedisCacheConfig这里也可以不用继承:CachingConfigurerSupport,也就是直接一个普通的Class就好了;  * 

 * 这里主要我们之后要重新实现 key的生成策略,只要这里修改KeyGenerator,其它位置不用修改就生效了。  * 

 * 普通使用普通类的方式的话,那么在使用@Cacheable的时候还需要指定KeyGenerator的名称;这样编码的时候比较麻烦。  *  * @create 2017-12-13 12:45  **/ @Configuration @EnableCaching//启用缓存,这个注解很重要; public class RedisCacheConfig extends CachingConfigurerSupport {     /**      * 缓存管理器.      *      * @param redisTemplate      * @return      */     @Bean     public CacheManager cacheManager(RedisTemplate redisTemplate) {         RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);         //设置缓存过期时间         cacheManager.setDefaultExpiration(10000);         return cacheManager;     }     /**      * redis模板操作类,类似于jdbcTemplate的一个类;      * 

     * 虽然CacheManager也能获取到Cache对象,但是操作起来没有那么灵活;      * 

     * 这里在扩展下:RedisTemplate这个类不见得很好操作,我们可以在进行扩展一个我们      * 

     * 自己的缓存类,比如:RedisStorage类;      *      * @param factory : 通过Spring进行注入,参数在application.properties进行配置;      * @return      */     @Bean     public RedisTemplate redisTemplate(RedisConnectionFactory factory) {         StringRedisTemplate template = new StringRedisTemplate(factory);         setSerializer(template);//设置序列化工具         template.afterPropertiesSet();         return template;     }     private void setSerializer(StringRedisTemplate template) {         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);         ObjectMapper om = new ObjectMapper();         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);         om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);         jackson2JsonRedisSerializer.setObjectMapper(om);         template.setValueSerializer(jackson2JsonRedisSerializer);     }     /**      * 自定义key.      * 此方法将会根据类名+方法名+所有参数的值生成唯一的一个key,即使@Cacheable中的value属性一样,key也会不一样。      */     @Override     public KeyGenerator keyGenerator() {         return new KeyGenerator() {             @Override             public Object generate(Object o, Method method, Object... objects) {                 StringBuilder sb = new StringBuilder();                 sb.append(o.getClass().getName());                 sb.append(method.getName());                 for (Object obj : objects) {                     sb.append(obj.toString());                 }                 return sb.toString();             }         };     } }

########################################################
###REDIS (RedisProperties) redis基本配置;
########################################################
# database name
spring.redis.database=0
# server host1
spring.redis.host=127.0.0.1
# server password
#spring.redis.password=
#connection port
spring.redis.port=6379
# pool settings ...
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
# name of Redis server
#spring.redis.sentinel.master=
# comma-separated list of host:port pairs
#spring.redis.sentinel.nodes=

看完上述内容,你们对SpringBoot中怎么配置单点Redis缓存有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享名称:SpringBoot中怎么配置单点Redis缓存
本文来源:http://bjjierui.cn/article/iijico.html

其他资讯