李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
SpringBoot整合Redis基本操作
Leefs
2020-04-19 PM
1826℃
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://www.lilinchao.com/archives/873.html
上一篇
IDEA添加Mapper.xml文件模版
下一篇
Docker下安装GitLab
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Spring
算法
栈
锁
哈希表
Golang基础
MyBatis-Plus
Hive
二叉树
容器深入研究
Nacos
Eclipse
字符串
MyBatis
工具
Beego
排序
Jenkins
Linux
Golang
RSA加解密
Livy
SQL练习题
MySQL
Kibana
Java阻塞队列
Elastisearch
Yarn
MyBatisX
高并发
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞