springboot集成redis的使用注解有哪些
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章给大家分享的是有关springboot集成redis的使用注解有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。redis简介:Redis是当前比较热门的NOSQ
千家信息网最后更新 2024年11月11日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安全错误
数据库的锁怎样保障安全
软件开发增减改
软件开发公司不放假违法吗
有名气的软件开发
数据库怎么创建宏
数据库表设计图可以进行什么操作
万户网络技术有限公司地址
软件开发的技术基础是什么
水污染数据库
全球私人卫星网络技术
软件开发要读什么学校
连接删除数据库文件
服务器换了数据库怎么还原
www网页服务器配置与管理
天津理工大学数据库设计优化题
网络安全法百度网盘下载
计算机网络技术单招试卷
2022版药品目录数据库
有机物 数据库
介休天气预报软件开发
网络安全卡怎么画
如何实现数据库的连接
服务器静态路由
网络安全工作zrz
N8软件开发
医疗健康大数据库
新乡市微云网络技术有限公司
魔兽世界怀旧服虎年新服务器
区块链技术是中心化的数据库
桌面java软件开发
104软件开发说明书