李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
SpringBoot整合Redis基本操作
Leefs
2020-04-19 PM
4140℃
0条
# SpringBoot整合Redis基本操作 ### 一、SpringBoot整合Redis **1、在pom.xml配置文件中引入依赖包** ```xml
org.springframework.boot
spring-boot-starter-data-redis
``` **2、在application.properties中配置redis的连接信息** ```properties #Redis数据库索引(默认为0) spring.redis.database=0 #Redis服务器地址 spring.redis.host=192.168.102.157 #Redis服务器连接端口 spring.redis.port=6379 #Redis服务器连接密码(默认为空) spring.redis.password= ``` **3、在业务层引入RedisTemplate** ```java @Autowired private RedisTemplate
redisTemplate; ``` **4、将查询的信息保存到Redis中** ```java List
list = (List
)redisTemplate.opsForValue().get("allStudent"); if(null == list){ list = studentMapper.findAllStudent(); redisTemplate.opsForValue().set("allStduent",list); } ``` **5、将redis中存入的key值,变成可读字符串** ```java RedisSerializer redisSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(redisSerializer); ``` **注意:使用Redis缓存实体信息,实体类必须被序列化** ### 二、Redis内存穿透 redis解决的问题就是减轻数据库的压力,让数据库的内容保存到redis中,但是并发条件下判断条件没有起到拦截的效果,第一次所有的请求依然会请求数据库,虽然Redis有数据 ### 三、内存穿透的解决措施 ```java List
list = (List
)redisTemplate.opsForValue().get("allStudent"); if(null == list){ synchronized (this){ list = (List
)redisTemplate.opsForValue().get("allStudent"); if(null == list){ list = studentMapper.findAllStudent(); redisTemplate.opsForValue().set("allStduent",list); } } } ``` ### 四、测试 ```java ExecutorService executorService = Executors.newFixedThreadPool(20); for (int i=0;i<10000;i++){ executorService.submit(new Runnable() { @Override public void run() { studentService.findAllStudent(); } }); } ```
标签:
SpringBoot
,
Redis
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/873.html
上一篇
IDEA添加Mapper.xml文件模版
下一篇
Docker下安装GitLab
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
35
其它
25
GO
48
NLP
8
标签云
Prometheus
Spark
递归
Kubernetes
NIO
Sentinel
Elasticsearch
DataX
排序
Quartz
Spring
Spark SQL
高并发
Scala
Spark Core
并发编程
Ubuntu
链表
国产数据库改造
gorm
Python
工具
人工智能
Map
Jquery
锁
ajax
nginx
pytorch
Nacos
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞