spring boot使用redis做数据缓存

2023-05-16

1 添加redis支持
在pom.xml中添加

1. <dependency>
2. <groupId>org.springframework.boot</groupId>
3. <artifactId>spring-boot-starter-redis</artifactId>
4. </dependency>
1.
2.
3.
4.
 

2 redis配置


1. package
2.   
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10. import
11. import
12. import
13. import
14. import
15. import
16. import
17.   
18. import
19.   
20.   
21. @Configuration
22. @EnableCaching
23. public class RedisConfig extends
24.   
25. @Bean
26. public
27. return new
28. @Override
29. public
30. new
31.                 sb.append(target.getClass().getName());  
32.                 sb.append(method.getName());  
33. for
34.                     sb.append(obj.toString());  
35.                 }  
36. return
37.             }  
38.         };  
39.   
40.     }  
41.   
42. @Bean
43. public
44. @SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {  
45. return new
46.     }  
47.   
48. @Bean
49. public
50.             RedisConnectionFactory factory) {  
51. new
52. new Jackson2JsonRedisSerializer(Object.class);  
53. new
54.         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);  
55.         om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);  
56.         jackson2JsonRedisSerializer.setObjectMapper(om);  
57.         template.setValueSerializer(jackson2JsonRedisSerializer);  
58.         template.afterPropertiesSet();  
59. return
60.     }  
61. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
 

3 redis服务器配置
1. # REDIS (RedisProperties)  
2. spring.redis.database= # database name  
3. spring.redis.host=localhost # server host  
4. spring.redis.password= # server password  
5. spring.redis.port=6379
6. spring.redis.pool.max-idle=8
7. spring.redis.pool.min-idle=0
8. spring.redis.pool.max-active=8
9. spring.redis.pool.max-wait=-1
10. spring.redis.sentinel.master= # name of Redis server  
11. spring.redis.sentinel.nodes= # comma-separated list of host:port pairs
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.


 

4 应用
测试两个实体类

1. package
2.   
3.   
4. public class
5. private
6. private
7. private
8.   
9. public
10. this.id = id;  
11. this.province = province;  
12. this.city = city;  
13.     }  
14.   
15. public
16.     }  
17.   
18. public
19. return
20.     }  
21.   
22. public void
23. this.id = id;  
24.     }  
25.   
26. public
27. return
28.     }  
29.   
30. public void
31. this.province = province;  
32.     }  
33.   
34. public
35. return
36.     }  
37.   
38. public void
39. this.city = city;  
40.     }  
41. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
1. package
2.   
3.   
4. public class
5. private
6. private
7. private
8.   
9. public
10. this.id = id ;  
11. this.firstName = firstName;  
12. this.lastName = lastName;  
13.     }  
14.   
15. public
16.     }  
17.   
18. public
19. return
20.     }  
21.   
22. public void
23. this.id = id;  
24.     }  
25.   
26. public
27. return
28.     }  
29.   
30. public void
31. this.firstName = firstName;  
32.     }  
33.   
34. public
35. return
36.     }  
37.   
38. public void
39. this.lastName = lastName;  
40.     }  
41. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
 使用演示

1. package
2.   
3. import
4. import
5. import
6. import
7.   
8. /**
9.  * Created by wisely on 2015/5/25.
10.  */
11. @Service
12. public class
13. @Cacheable(value = "usercache",keyGenerator = "wiselyKeyGenerator")  
14. public
15. "无缓存的时候调用这里");  
16. return new
17.     }  
18. @Cacheable(value = "addresscache",keyGenerator = "wiselyKeyGenerator")  
19. public
20. "无缓存的时候调用这里");  
21. return new
22.     }  
23. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.


 

1. package
2.   
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10.   
11. /**
12.  * Created by wisely on 2015/5/25.
13.  */
14.   
15. @Controller
16. public class
17.   
18. @Autowired
19.     DemoService demoService;  
20.   
21. @RequestMapping("/test")  
22. @ResponseBody
23. public
24. "wang","yunfei");  
25. "anhui","hefei");  
26. "若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");  
27. return "ok";  
28.     }  
29. @RequestMapping("/test2")  
30. @ResponseBody
31. public
32. "wang","yunfei");  
33. "anhui","hefei");  
34. "我这里没执行查询");  
35. "user:"+"/"+user.getFirstName()+"/"+user.getLastName());  
36. "address:"+"/"+address.getProvince()+"/"+address.getCity());  
37. return "ok";  
38.     }  
39. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 

5 检验
 

先访问http://localhost:8080/test 保存缓存

再访问http://localhost:8080/test2 调用缓存里的数据

 1 添加redis支持
在pom.xml中添加

1. <dependency>
2. <groupId>org.springframework.boot</groupId>
3. <artifactId>spring-boot-starter-redis</artifactId>
4. </dependency>
1.
2.
3.
4.
 

2 redis配置
1. package
2.   
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10. import
11. import
12. import
13. import
14. import
15. import
16. import
17.   
18. import
19.   
20.   
21. @Configuration
22. @EnableCaching
23. public class RedisConfig extends
24.   
25. @Bean
26. public
27. return new
28. @Override
29. public
30. new
31.                 sb.append(target.getClass().getName());  
32.                 sb.append(method.getName());  
33. for
34.                     sb.append(obj.toString());  
35.                 }  
36. return
37.             }  
38.         };  
39.   
40.     }  
41.   
42. @Bean
43. public
44. @SuppressWarnings("rawtypes") RedisTemplate redisTemplate) {  
45. return new
46.     }  
47.   
48. @Bean
49. public
50.             RedisConnectionFactory factory) {  
51. new
52. new Jackson2JsonRedisSerializer(Object.class);  
53. new
54.         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);  
55.         om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);  
56.         jackson2JsonRedisSerializer.setObjectMapper(om);  
57.         template.setValueSerializer(jackson2JsonRedisSerializer);  
58.         template.afterPropertiesSet();  
59. return
60.     }  
61. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.


 

3 redis服务器配置


1. # REDIS (RedisProperties)  
2. spring.redis.database= # database name  
3. spring.redis.host=localhost # server host  
4. spring.redis.password= # server password  
5. spring.redis.port=6379
6. spring.redis.pool.max-idle=8
7. spring.redis.pool.min-idle=0
8. spring.redis.pool.max-active=8
9. spring.redis.pool.max-wait=-1
10. spring.redis.sentinel.master= # name of Redis server  
11. spring.redis.sentinel.nodes= # comma-separated list of host:port pairs
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.


 

4 应用
测试两个实体类

1. package
2.   
3.   
4. public class
5. private
6. private
7. private
8.   
9. public
10. this.id = id;  
11. this.province = province;  
12. this.city = city;  
13.     }  
14.   
15. public
16.     }  
17.   
18. public
19. return
20.     }  
21.   
22. public void
23. this.id = id;  
24.     }  
25.   
26. public
27. return
28.     }  
29.   
30. public void
31. this.province = province;  
32.     }  
33.   
34. public
35. return
36.     }  
37.   
38. public void
39. this.city = city;  
40.     }  
41. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.


1. package
2.   
3.   
4. public class
5. private
6. private
7. private
8.   
9. public
10. this.id = id ;  
11. this.firstName = firstName;  
12. this.lastName = lastName;  
13.     }  
14.   
15. public
16.     }  
17.   
18. public
19. return
20.     }  
21.   
22. public void
23. this.id = id;  
24.     }  
25.   
26. public
27. return
28.     }  
29.   
30. public void
31. this.firstName = firstName;  
32.     }  
33.   
34. public
35. return
36.     }  
37.   
38. public void
39. this.lastName = lastName;  
40.     }  
41. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.


 

 使用演示

1. package
2.   
3. import
4. import
5. import
6. import
7.   
8. /**
9.  * Created by wisely on 2015/5/25.
10.  */
11. @Service
12. public class
13. @Cacheable(value = "usercache",keyGenerator = "wiselyKeyGenerator")  
14. public
15. "无缓存的时候调用这里");  
16. return new
17.     }  
18. @Cacheable(value = "addresscache",keyGenerator = "wiselyKeyGenerator")  
19. public
20. "无缓存的时候调用这里");  
21. return new
22.     }  
23. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.


 

1. package
2.   
3. import
4. import
5. import
6. import
7. import
8. import
9. import
10.   
11. /**
12.  * Created by wisely on 2015/5/25.
13.  */
14.   
15. @Controller
16. public class
17.   
18. @Autowired
19.     DemoService demoService;  
20.   
21. @RequestMapping("/test")  
22. @ResponseBody
23. public
24. "wang","yunfei");  
25. "anhui","hefei");  
26. "若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");  
27. return "ok";  
28.     }  
29. @RequestMapping("/test2")  
30. @ResponseBody
31. public
32. "wang","yunfei");  
33. "anhui","hefei");  
34. "我这里没执行查询");  
35. "user:"+"/"+user.getFirstName()+"/"+user.getLastName());  
36. "address:"+"/"+address.getProvince()+"/"+address.getCity());  
37. return "ok";  
38.     }  
39. }
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.


 

5 检验
 

先访问http://localhost:8080/test 保存缓存

再访问http://localhost:8080/test2 调用缓存里的数据
-----------------------------------
spring boot使用redis做数据缓存
https://blog.51cto.com/u_11979904/5948188

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring boot使用redis做数据缓存 的相关文章

  • 使用ActiveMQ进行C++与C#的通信

    该系列文章介绍如何通过ActiveMQ在C 43 43 和C 控制台项目之间通信 关于ActiveMQ的介绍可以参考 深入浅出ActiveMQ xff0c 平台搭建可以参考 Activemq 平台搭建与C 示列 xff0c 两者之间有交叉内
  • Centos8防火墙设置

    进程与状态相关 systemctl start firewalld service 启动防火墙 systemctl stop firewalld service 停止防火墙 systemctl status firewalld 查看防火墙状
  • c/c++笔试

    1 xff0e 进程和线程的差别 线程是指进程内的一个执行单元 也是进程内的可调度实体 与进程的区别 1 调度 xff1a 线程作为调度和分配的基本单位 xff0c 进程作为拥有资源的基本单位 2 并发性 xff1a 不仅进程之间可以并发执
  • android onNewIntent 调用时机

    当前Activity已经在Activity堆栈当中时 xff0c 主要取决于LaunchMode对应的设置 LaunchMode为SingleTop时 xff0c 如果ActivityA在栈顶 且现在要再启动ActivityA xff0c
  • 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列3 VR中的交互方式

    不知道怎么开发VR游戏 xff1f Unity5 3官方VR教程重磅登场 系列3 VR中的交互方式 王寒 4 个月前 https zhuanlan zhihu com p 20505470 概览 xff1a 在VR项目中 xff0c 我们需
  • Java多线程通信-利用传统的线程通信wait(),notify()方法实现“生产者消费者模式”

    想利用传统的线程通信wait notify xff0c notifyAll 方法 xff0c 必须依赖于同步监听器的存在 xff0c 也就是说 xff0c 对于synchronized修饰的同步方法 xff0c 因为该类的默认实例 xff0
  • java TCP/IP实现简单的多人聊天功能

    TCP IP是可靠的网络协议 xff0c 数据的传输需要服务端和客户端之间三次 握手 xff0c 比较适合文本等一些可靠性要求高的数据传输 xff0c 但是它的效率较UDP低 下面通过一张图来简要说明使用 ServerSocket 创建 T
  • JavaScript开发工具WebStorm使用教程:从命令行运行代码检查

    从命令行运行代码检查 WebStorm运行代码检查可以发现并突出显示语法错误 死代码 可能的错误 错误的编码风格和其他问题 还可以从命令行为特定项目运行所有已配置的检查 xff0c 并将结果存储为 XML JSON 或带有报告的纯文本文件
  • 基于Spark的机器学习经验

    这篇内容基于我去年的一些感悟写的 xff0c 但是今年才在Stuq 的微信群做的分享 从技术角度而言 xff0c 对Spark的掌握和使用还是显得很手生的 但是今天一位做数据分析相关的朋友说 xff0c 受这篇内容影响 xff0c 他接受了
  • Linux(manjaro)微信web开发者工具

    安装 wine和winetricks span class hljs built in sudo span pacman S wine winetricks 打开winetricks 安装需要的组件 安装linux版本运行程序 github
  • C++类与对象

    C 43 43 面向对象 一 面向对象程序设计方法概述 1 凡是以类对象为基本构成单位的程序称为基于对象的程序 2 面向对象和面向过程的区别 xff1a 在笔者看来 xff0c 通俗地讲 xff0c 面向对象 就是在描述一个对象 xff0c
  • SVN无法提交修改问题

    分享一下我老师大神的人工智能教程 xff01 零基础 xff0c 通俗易懂 xff01 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 xff0c 造福人民 xff0c 实现我们中华民族伟大
  • AbstractApplicationContext.refresh()应用上下文刷新方法

    前情提要 学习源码光看博客文章基本没有记住的可能 结合源码和博客 43 实践才能够通过理解记住 看了很多天才断断续续看完 发现它和其他IOC Bean生命周期都有关联 将之前片段式的认知串联起来了 这个刷新的代码很长 建议没耐心的时候就先不
  • IIC协议--简要理解

    1 iic协议是什么 xff1f IIC Inter xff0d Integrated Circuit 总线是一种由 PHILIPS 公司开发的两线式串行总线 xff0c 用于连接微控制器及其外围设备 它是由数据线 SDA 和时钟 SCL
  • RISC与CISC比较

    RISC的设计重点在于降低由硬件执行指令的复杂度 xff0c 因为软件比硬件容易提供更大的灵活性和更高的智能 xff0c 因此RISC设计对编译器有更高的要求 xff1b CISC的设计则更侧重于硬件执行指令的功能 xff0c 使CISC的
  • 操作系统选择调度方式和算法的若干准则

    1 调度的类型 按调度的层次 xff1a 长期 xff08 长程 作业 高级 xff09 调度 xff1b 中期 xff08 中级 中程 xff09 调度 xff1b 短期 xff08 短程 进程 低级 xff09 调度 按OS 的类型 x
  • 提灯过桥问题

    题目 xff1a 小明一家过一座桥 xff0c 过桥时是黑夜 xff0c 所以必须有灯 现在小明过桥要1秒 xff0c 小明的弟弟要3秒 xff0c 小明的爸爸要6秒 xff0c 小明的妈妈要8秒 xff0c 小明的爷爷要12秒 每次此桥最
  • 如何判断一个整数数组中是否有重复元素

    题目 xff1a 写一个函数判断一个int类型的数组是否是有效的 所谓有效是指 xff1a 假设数组大小为n xff0c 那么这个int数组里的值为0 n 1之间的数 xff0c 并且每个数只能出现一次 xff0c 否则就是无效数组 例如
  • 2014百度校招开发测试工程师笔试题

    时间 xff1a 2013 9 28 地点 xff1a 深圳 职位 xff1a 开发测试工程师
  • Spark Streaming + Spark SQL 实现配置化ETL流程

    Spark Streaming 非常适合ETL 但是其开发模块化程度不高 xff0c 所以这里提供了一套方案 xff0c 该方案提供了新的API用于开发Spark Streaming程序 xff0c 同时也实现了模块化 xff0c 配置化

随机推荐

  • 整体了解HADOOP框架及一些开源项目

    Hadoop框架中 xff0c 有很多优秀的工具 xff0c 帮助我们解决工作中的问题 Hadoop的位置 从上图可以看出 xff0c 越往右 xff0c 实时性越高 xff0c 越往上 xff0c 涉及到算法等越多 越往上 xff0c 越
  • Kafka简介

    Kafka简介 在当前的大数据时代 xff0c 第一个挑战是海量数据的收集 xff0c 另一个就是这些数据的分析 数据分析的类型通常有用户行为数据 应用性能跟踪数据 活动数据日志 事件消息等 消息发布机制用于连接各种应用并在它们之间路由消息
  • Flume入门笔记------架构以及应用介绍

    在具体介绍本文内容之前 xff0c 先给大家看一下Hadoop业务的整体开发流程 xff1a 从Hadoop的业务开发流程图中可以看出 xff0c 在大数据的业务处理过程中 xff0c 对于数据的采集是十分重要的一步 xff0c 也是不可避
  • 分布式服务框架dubbo原理解析

    alibaba有好几个分布式框架 xff0c 主要有 xff1a 进行远程调用 类似于RMI的这种远程调用 的 dubbo hsf xff0c jms消息服务 napoli notify xff0c KV数据库 tair 等 这个框架 工具
  • Android Studio Gradle project Sync Failed解决方法

    1 查看项目使用的gradle和本地gradle是否一致 本地gradle一般目录在C Users admin gradle文件夹下面 项目使用的gradle在项目的gradle wrapper properties文件中 distribu
  • Docker not running on windows 10 error: Hardware assisted virtualization and data execution protecti

    Docker not running on windows 10 error Hardware assisted virtualization and data execution protection must be enabled in
  • [高通SDM450][Android9.0]user版本uartlog常开

    文章目录 开发平台基本信息问题描述解决方法user版本调试串口可输入user版本uartlog常开 开发平台基本信息 芯片 SDM450 版本 Android 9 0 kernel msm 4 9 问题描述 user版本调试串口默认只输入调
  • Ubuntu 7.04 乱码解决

    一 解决XMMS乱码问题 菜单乱码的解决 1 sudo ln s etc gtk gtkrc zh CN etc gtk gtkrc zh CN utf 8 2 sudo gedit etc gtk gtkrc zh CN utf 8 填写
  • yii2连接websocket服务实现服务端主动推送消息给客户端

    上一篇写的是websocket的服务 xff0c 这一篇写写调用服务和web端调用 xff0c 接收消息部分 1 调用websocket服务 主动推送消息的方法 lt php namespace common services use co
  • 生产者消费者算法

    span class hljs comment include lt unistd h gt span span class hljs comment include lt stdlib h gt span span class hljs
  • MongoDB ODM 框架MongoMongo-简化你的数据存储

    MongMongo是一个用Java写的ODM框架 xff0c 使得对MongoDB的操作更加便捷 MongoMongo努力为Java开发者提供类似于ActiveORM 或者 Hibernate的操作API 并且保留了MongoDB的sche
  • archlinux安装deb软件步骤

    archlinux安装deb软件步骤 步骤 步骤 安装yay安装debtap安装转换出的pkg软件 注意事项 xff1a 安装yay问题解决 xff1a go语言相关安装debtap问题解决 xff1a git代理设置
  • 第六章 正则,BeautifulSoup,xpath

    文章目录 1 正则1 1 提取字符串1 2 替换1 3 搜索 2 beautifulsoup2 1 各种解析器2 2 提取方式2 3 find方法2 3 1 find2 3 2 find all2 3 3 通过id和类型精确定位2 3 3
  • spring如何获取bean的6种方法,你知道几个?

    spring获取bean的6种方法 Bean工厂 xff08 com springframework beans factory BeanFactory xff09 是Spring框架最核心的接口 xff0c 它提供了高级IoC的配置机制
  • c语言中while与do while循环的主要区别是什么

    while循环与do while循环的区别如下 xff1a 1 循环结构的表达式不同 while循环结构的表达式为 xff1a while xff08 表达式 xff09 循环体 xff1b do while循环结构的表达式为 xff1a
  • MVC设计模式

    MVC的全名是Model View Controller xff0c 是模型 Model xff0d 视图 view xff0d 控制器 controller 的缩写 xff0c 是一种设计模式 它是用一种业务逻辑 数据与界面显示分离的方法
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的
  • MyBatis生命周期2的过程(最终)?

    首先加载mybatis config xml总配置文件 xff0c 根据development的参数配置连接数据库 xff1b 查询mappers映射关系 xff0c 找到mapper xml配置文件 执行mapper xml文件 xff0
  • spring boot使用redis做数据缓存

    1 添加redis支持 在pom xml中添加 1 lt dependency gt 2 lt groupId gt org springframework boot lt groupId gt 3 lt artifactId gt spr