Springboot整合redis使用技巧

更新时间:2023-07-13 11:49:54 阅读: 评论:0

Springboot整合redis使用技巧
Spring Cache
Spring 3.1  引入基于注解Cache支持,且提供了Cache抽象ps照片处理。
Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存临时存储方案,也支持和主流的专业缓存例如 EHCacheRedis 集成。
Spring提供的核心Cache接口:
1. package org.springframework.cache; 
2.  
3. public interface Cache { 
4.     String getName();  //缓存的名字 
万荣二中
5.     Object getNativeCache(); //底层使用的缓存,如EhcacheRedis 
6.     ValueWrapper get(Object key); //根据key得到一个ValueWrapper,然后调用其get方法获取值 
五字诗词7.     <T> T get(Object key, Class<T> type);//根据key,和value的类型直接获取value 
8.     void put(Object key, Object value);//往缓存放数据 
9.     void evict(Object key);//移除key对应的缓存 
10.     void clear(); //清空缓存cad图标 
11. macaca 
12.     interface ValueWrapper { //缓存值的Wrapper 
13.         Object get(); //得到真实的value 
14.         } 
15. }
spring cache可以满足一般应用对缓存的需求,但是对于一些复杂的应用场景就不能直接使用,比如在Spring提供抽象API中并没有提供缓存策略的解决方案,缓存策略都是由底层Cache自行维护。
在Springboot提供了基于spring cache的自动化配置默认提供了Ehcache最大的航空母舰、Guava、Redis等的配置实现。我们在应用开发中使用的是Redis缓存,并且出现了一些复杂的应用场景,需要对于不同缓存制定不同的策略。
查看了Springboot游湘江实现Redis自动化配置的源码。发现在RedisCacheManager类中有这两个属性defaultExpiration和expires。
这时候就可以通过在Spring注册一个RedisCacheManager实现缓存策略(源码)。
配置多个Cache Manager实例与使用
如果想要实现多个Cache Manager实例也是可以的比如还想要一个内存缓存GuavaCache,需要使用@Primary注解指定一个Cache Manager作为默认缓存。(在创建bean的时候最好指定缓存管理实例的bean名称),使用的时候不指定缓存管理实例名称就使用默认缓存,指定缓存管理实例就是使用指定的缓存管理实例。
例如:
怎么用烤箱烤红薯@Cacheable(value = " cache ",key = "key")//使用redisCacheManager由@Primary指定
@Cacheable(cacheNames = "guavaCacheManager",value = " guavaCache ",key = "key")//使用guavaCacheManager
Redis缓存使用技巧
redisCacheManager配置中有一个比较有意思的配置属性uPrefix;这个表示缓存数
据时,缓存的键是否使用前缀。
通过源码可以看到,如果不使用前缀,redis将会在缓存中维护一个有序集合SortedSet来保存该类缓存数据的key方便维护(如清空缓存)。但是需要注意这个有序集合在缓存的数据量过大的时候会导致redis访问出现异常甚至宕机

本文发布于:2023-07-13 11:49:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1094252.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:缓存   使用   指定   管理   提供
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图