当前位置: 首页 > news >正文

广州建站招聘wordpress 标签输出页

广州建站招聘,wordpress 标签输出页,域名解析记录值填什么,晚上网站推广软件免费版目录 前言 集成 maven依赖 CacheManagerConfig配置 redis配置 使用 Springboot 集成使用缓存 Cacheable CacheEvict 前言 现有项目中经常遇到的缓存集成问题,Springboot提供了统一的接口抽象与缓存管理器,可集成多种缓存类型,如 Co…

目录

前言

集成

maven依赖

CacheManagerConfig配置

redis配置

使用

Springboot 集成使用缓存

@Cacheable

@CacheEvict


前言

现有项目中经常遇到的缓存集成问题,Springboot提供了统一的接口抽象与缓存管理器,可集成多种缓存类型,如  ConcurrentMap 缓存、redis缓存,并可以随时无缝替换底层缓存存储。

集成

maven依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.3.0</version>
</dependency>

CacheManagerConfig配置

下面配置了2个,一个是localCacheManager,底层用的是ConcurrentMap,另一个是 RedisCacheManager,底层用的是redis。

通过 @Primary 注解,可以控制那个是主缓存。

@Configuration
@EnableCaching
@EnableConfigurationProperties(CacheProperties.class)
public class CacheManagerConfig {public static final String CACHE_MANAGER_LOCAL = "localCacheManager";public static final String CACHE_MANAGER_REDIS = "redisCacheManager";@Autowiredprivate CacheProperties cacheProperties;@Bean(name = CACHE_MANAGER_LOCAL)public CacheManager localCacheManager() {return new ConcurrentMapCacheManager();}@Primary@Bean(name = CACHE_MANAGER_REDIS)public RedisCacheManager redisCacheManager() {GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig().entryTtl(cacheProperties.getRedis().getTimeToLive()).serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(stringRedisSerializer)).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer));return RedisCacheManager.builder(jedisConnectionFactory()).cacheDefaults(config).build();}
}

redis配置

配置文件

spring:redis:host: 192.168.1.252port: 6379database: 1password: 123456cache:redis:time-to-live: 600s

redisconfig

    /*** jedis连接工厂* @return*/@Beanpublic JedisConnectionFactory jedisConnectionFactory() {RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();redisStandaloneConfiguration.setDatabase(redisProperties.getDatabase());redisStandaloneConfiguration.setPort(redisProperties.getPort());redisStandaloneConfiguration.setHostName(redisProperties.getHost());redisStandaloneConfiguration.setPassword(RedisPassword.of(redisProperties.getPassword()));JedisConnectionFactory factory = new JedisConnectionFactory(redisStandaloneConfiguration);return factory;}

redisTemplate

 @Bean(name = "redisTemplate")public RedisTemplate<String, Object> redisTemplate() {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(jedisConnectionFactory());Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);ObjectMapper objectMapper = new ObjectMapper();GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();redisTemplate.setDefaultSerializer(genericJackson2JsonRedisSerializer);objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;}

使用

注入cacheManager,并使用

    @Autowiredprivate CacheManager cacheManager;public void test() {Cache ca = cacheManager.getCache("userCache");ca.put("key", "value");ca.get("key");}

Springboot 集成使用缓存

@Cacheable

注解为 

@Cacheable 标记当前方法, 可将数据缓存与缓存,一般用于查询类方法

    @Cacheable(value = "firm", key = "#id", condition="#id!=null")public FirmBo getFirm(Long id) {return get(id);}

@CacheEvict

销毁缓存,一般用于编辑、新增或删除时候销毁缓存,下次查询时,会重新走数据库

​@CacheEvict(value = "person", key = "#person.id", condition = "#person.id!=null")public PersonBo savePerson(PersonBo person) {save(person);}

redis缓存存储实例

http://www.yayakq.cn/news/750534/

相关文章:

  • 做坑人网站二维码上海网络宣传公司
  • 网站建设的方案模板下载游戏开发是什么
  • 怎样看网站的浏览量霸州市网站建设
  • 网站开发强制开启浏览器极速模式百度知道网页版地址
  • 学校门户网站的网站建设方案网站广告素材
  • 做一个购物网站建设门户网站的目的和意义
  • 有限责任公司和有限公司的区别东莞网站seo
  • 纺织面料做哪个网站好怎么申请建立网站
  • 网站开发嫌工时长成全视频免费观看在线看记忆深处的作文怎么写
  • 电子工程师网站免费的png素材网
  • seo网站推广 杭州黄骅做网站价格
  • 做网站管理好吗深圳建设网站需要多少钱
  • 开源免费企业网站源码网络舆情分析
  • 做钢材的网站百度信息流投放在哪些平台
  • 网站网站怎么做代理网站建设中什么页面结构
  • 无备案网站如何赚钱建筑行业教育培训平台
  • 外贸网站建设 google营销型公司网站
  • 做信息网站要注册什么类型公司网站建设客户常见问题
  • 一般建设网站需要多少预算淘宝客用wordpress好吗
  • 网站开发建设合同书海外推广工作内容
  • 江苏屹峰建设网站临沂网站建设 百度优化
  • 项目网站开发北京做网站推广一个月多少钱
  • 福州建设部官方网站wordpress同步到微博
  • 网站建设做哪个科目北京免备案网站建设
  • 建设电子商务网站的规划书网站建设哪专业
  • 域名注册了后怎么建设网站网站兼容哪些浏览器
  • 青岛模板化网站模板网站怎么做卖
  • 网站建设前途如何生成网页
  • 开网站程序网站建设的外国文献
  • 域名查询ip爱站网广州天河区租房哪里便宜