springboot集成redis的使用注解有哪些
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家分享的是有关springboot集成redis的使用注解有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。redis简介:Redis是当前比较热门的NOSQ
千家信息网最后更新 2025年02月01日springboot集成redis的使用注解有哪些
这篇文章给大家分享的是有关springboot集成redis的使用注解有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
redis简介:
Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。Redis的特点:1,Redis读取的速度是110000次/s,写的速度是81000次/s;2,原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。3,支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)4,持久化,集群部署5,支持过期时间,支持事务,消息订阅
引入依赖:
org.springframework.boot spring-boot-starter-data-redis org.apache.commons commons-pool2 2.6.0
编写application.properties文件
#redi配置spring.redis.host=ip地址spring.redis.port=端口号spring.redis.database=0spring.redis.password=密码spring.redis.lettuce.pool.max-active=20spring.redis.lettuce.pool.max-wait=1#最大阻塞等待时间(负数表示没有限制)spring.redis.lettuce.pool.max-idle=5spring.redis.lettuce.pool.min-idle=0# 关闭超时时间spring.redis.lettuce.shutdown-timeout=100
编写配置类:
@EnableCaching@Configurationpublic class RedisConfig extends CachingConfigurerSupport {@Beanpublic RedisTemplateredisTemplate(RedisConnectionFactoryfactory) {RedisTemplate template = new RedisTemplate<>();RedisSerializer redisSerializer = new StringRedisSerializer();Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = newJackson2JsonRedisSerializer(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setConnectionFactory(factory);//key序列化方式template.setKeySerializer(redisSerializer);//value序列化template.setValueSerializer(jackson2JsonRedisSerializer);//value hashmap序列化template.setHashValueSerializer(jackson2JsonRedisSerializer);return template; }@Beanpublic CacheManager cacheManager(RedisConnectionFactory factory) {RedisSerializer redisSerializer = new StringRedisSerializer();Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = newJackson2JsonRedisSerializer(Object.class);//解决查询缓存转换异常的问题ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);// 配置序列化(解决乱码的问题),过期时间600秒RedisCacheConfiguration config =RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofSeconds(600)) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)) .disableCachingNullValues();RedisCacheManager cacheManager = RedisCacheManager.builder(factory) .cacheDefaults(config) .build();return cacheManager; }}
springboot的redis注解介绍
(1)缓存@Cacheable
根据方法对其返回结果进行缓存,下次请求时,如果缓存存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中。一般用在查询方法上。
查看源码,属性值如下:
(2)缓存@CachePut
使用该注解标志的方法,每次都会执行,并将结果存入指定的缓存中。其他方法可以直接从响应的缓存中读取缓存数据,而不需要再去查询数据库。一般用在新增方法上。
查看源码,属性值如下
(3)缓存@CacheEvict
使用该注解标志的方法,会清空指定的缓存。一般用在更新或者删除方法上查看源码,属性值如下
不能连接redis:(1)关闭liunx防火墙(2)找到redis配置文件:修改 protected-mode yes 改为 protected-mode no注释掉: bind 127.0.0.1
测试
@Cacheable(value = "banner", key = "'selectIndexList'")@Overridepublic ListselectIndexList() {List list = baseMapper.selectList(newQueryWrapper ().orderByDesc("sort"));return list; }@CacheEvict(value = "banner", allEntries=true)@Overridepublic void removeBannerById(String id) {baseMapper.deleteById(id); }
redis中:
基本的功能:
查询使用:@Cacheable注解
修改删除:使用@CacheEvict注解
增加:使用@CachePut注解
感谢各位的阅读!关于"springboot集成redis的使用注解有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
缓存
数据
注解
方法
序列
时间
支持
查询
配置
内存
原子
属性
文件
源码
结果
不同
内容
更多
标志
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
附近的共享网络安全吗
广东网络技术开发案例
网络安全视频文案
北京深度网络技术培训学校
校园文明网络安全演讲稿
显示卡下载软件开发
软件开发工程完美湖南岚鸿
生命科学数据库
将五子棋的胜负导入到数据库
简述jdbc的连接数据库方法
轰炸互联网科技
邮件服务器 测试
哪个服务器可以做摄像头
高级网络安全管理师月薪
长沙房乐网络技术有限公司
搞视频网站最好用什么服务器
上海直销网络技术图片
主动脉夹层有专门的数据库吗
德邦物流软件开发怎么样
小软件开发有什么用
软件开发标书 售后服务措施
360国产服务器
前端平台软件开发
linux服务器传输文件
高效软件开发方式
我的世界服务器32k会不会封号
软件开发公司薪酬方案
idea显示数据库
网络安全快车进基层系列
海南8核服务器虚拟主机