zoukankan      html  css  js  c++  java
  • Spring Boot中使用Redis

    一、定义工程

    创建一个spring boot模块

    二、修改pom文件

    在pom文件中添加Spring Boot与Redis整合依赖

    1. <dependencies>
    2. <!--spring boot与redis整合依赖-->
    3. <dependency>
    4. <groupId>org.springframework.boot</groupId>
    5. <artifactId>spring-boot-starter-data-redis</artifactId>
    6. </dependency>
    7. <dependency>
    8. <groupId>org.projectlombok</groupId>
    9. <artifactId>lombok</artifactId>
    10. </dependency>
    11. <!--mybatis与spring boot整合依赖-->
    12. <dependency>
    13. <groupId>org.mybatis.spring.boot</groupId>
    14. <artifactId>mybatis-spring-boot-starter</artifactId>
    15. <version>1.3.2</version>
    16. </dependency>
    17. <!--mysql驱动-->
    18. <dependency>
    19. <groupId>mysql</groupId>
    20. <artifactId>mysql-connector-java</artifactId>
    21. <version>5.1.47</version>
    22. </dependency>
    23. <!-- druid驱动 -->
    24. <dependency>
    25. <groupId>com.alibaba</groupId>
    26. <artifactId>druid</artifactId>
    27. <version>1.1.12</version>
    28. </dependency>
    29. <!--tomcat内置的JSP解析器-->
    30. <dependency>
    31. <groupId>org.apache.tomcat.embed</groupId>
    32. <artifactId>tomcat-embed-jasper</artifactId>
    33. </dependency>
    34. <dependency>
    35. <groupId>org.springframework.boot</groupId>
    36. <artifactId>spring-boot-starter-web</artifactId>
    37. </dependency>
    38. <dependency>
    39. <groupId>org.springframework.boot</groupId>
    40. <artifactId>spring-boot-starter-test</artifactId>
    41. <scope>test</scope>
    42. </dependency>
    43. </dependencies>
    44. <build>
    45. <resources>
    46. <!--注册dao包下mybatis映射文件为资源目录-->
    47. <resource>
    48. <directory>src/main/java</directory>
    49. <includes>
    50. <include>**/*.xml</include>
    51. </includes>
    52. </resource>
    53. <!--注册webapp目录为资源目录-->
    54. <resource>
    55. <directory>src/main/webapp</directory>
    56. <targetPath>META-INF/resources</targetPath>
    57. <includes>
    58. <include>**/*.*</include>
    59. </includes>
    60. </resource>
    61. </resources>
    62. <plugins>
    63. <plugin>
    64. <groupId>org.springframework.boot</groupId>
    65. <artifactId>spring-boot-maven-plugin</artifactId>
    66. </plugin>
    67. </plugins>
    68. </build>

    三、修改主配置文件

    在主配置文件中添加如下内容:

    1. # 视图的前辍与后辍
    2. spring:
    3. mvc:
    4. view:
    5. prefix: /
    6. suffix: .jsp
    7. # 注册数据源
    8. datasource:
    9. type: com.alibaba.druid.pool.DruidDataSource
    10. driver-class-name: com.mysql.jdbc.Driver
    11. url: jdbc:mysql:///test?useUnicode=true&characterEncoding=utf-8
    12. username: root
    13. password: root
    14. #编码设置
    15. http:
    16. encoding:
    17. force: true
    18. charset: utf-8
    19. enabled: true
    20. redis:
    21. host: 39.97.176.160
    22. port: 6379
    23. cache:
    24. type: redis # 指定缓存类型
    25. cache-names: realTimeCache # 指定缓存空间名称,随意
    26. server:
    27. tomcat:
    28. uri-encoding: UTF-8
    29. mybatis:
    30. # 注册映射文件
    31. mapper-locations: classpath:com/abc/dao/*.xml
    32. # 注册实体类别名
    33. type-aliases-package: com.abc.bean

    四、修改实体类Student

    由于要将查询的实体类对象缓存到Redis,Redis要求实体类必须序列化。所以需要实体类实现序列化接口

    五、修改页面

    (1) 修改index页面

    (2) 修改welcome.jsp页面

    六、 修改Controller类

    七、修改Service接口

    八、修改Service接口实现类

    九、修改Dao接口

    十、修改映射文件

    十一、测试

    注册会清空作用域realTimeCache缓存数据。

    查询第一次会缓存信息,后面从Redis获取。

    其他

    高并发下访问Redis,存在什么问题?存在三个问题

    • 缓存穿透:为DB查询为null的数据预设一个值
    • 缓存雪崩:提前规划好缓存到期时间
    • 热点缓存:双重检测锁机制
  • 相关阅读:
    【Python】异常处理
    【Python】写入文件
    【Python】从文件中读取数据
    【Python】导入类
    【Python】继承
    【Python】使用类和实例
    SQL HAVING
    SQL GROUP BY
    SQL ORDER BY
    SQL CREATE INDEX
  • 原文地址:https://www.cnblogs.com/edda/p/13261623.html
Copyright © 2011-2022 走看看