zoukankan      html  css  js  c++  java
  • SpringBoot(十一): Spring Boot集成Redis

    1、在 pom.xml 中配置相关的 jar 依赖;

    <!--  加载 spring  boot  redis 包  -->
    
    <dependency>
    
    <groupId>org.springframework.boot</groupId>
    
    <artifactId>spring-boot-starter-data-redis</artifactId>
    
    </dependency>

    2、在  Springboot  核心配置文件  application.properties  中配置

    #配置redis
    spring.redis.host=localhost
    spring.redis.password=
    spring.redis.port=6379

    3、配置了上面的步骤,Spring boot 将自动配置 RedisTemplate,在需要操作 redis 的类中注入 redisTemplate; 在使用的类中注入:

    @Autowired

    private  RedisTemplate<String,  String>  redisTemplate;

    @Autowired

    private  RedisTemplate<Object,  Object>  redisTemplate;

    spring  boot  帮我们注入的  redisTemplate  类,泛型里面只能写<String, String>、<Object, Object>

    复用上一章集成mybatis的代码

    启动测试发现报错,让你后将对对象序列化

     

    生成序列化ID方法如下:

    点击即可生成,或者使用快捷键Alt+Enter

    5-2 Spring Boot  集成 Redis 测试启动程序,进行访问测试;

    设置 key 的序列化方式为字符串,增强 key 的可读性;

    访问Controller

    查看redis

    5-3  高并发条件下缓存穿透问题分析

    在项目中使用缓存通常是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库,然后将查询出来的数据缓

    存到缓存中,最终返回查询结果; 但是如果大量用户请求查询的某一个数据,而该数据在缓存中不存

    在,就会造成大量的用户请求都去查询 DB,这样缓存就失去了意义,在并发流量大时,可能导致 DB 压力过大而失去响应;

    5-4  高并发条件下缓存穿透问题复现

    按照常规的代码实现方式,多线程并发条件下多个请求落入到了数据库;

    5-5  高并发条件下缓存穿透问题处理

    通过锁机制,避免请求穿透缓存直接落入到数据库;

    解决方式一: 加synchronized  但是这样会导致效率很低,不推荐使用!

    解决方法二:双重检测机制 (如果集群的项目,可以了解一下分布式锁)

    5-6  高并发条件下缓存穿透问题测试

    运行程序,观察是否有多个请求落入到数据库;

     Redis 哨兵模式待更新

  • 相关阅读:
    a320raid
    原创5:dell sc1425老服务器安装vmware虚拟机esxi 5.0-更新TEAC CD224EN Slim CDROM ULD
    Explainations of the Windows 4GB Limit, PAE, AWE and Large Page Support
    install sata ahci driver after windows xp installed. The simplest way
    解决无线局域网的七大安全难题
    原创1:dell sc1425老服务器安装vmware虚拟机esxi 5.0-系统配置
    常见网络攻击手段原理分析(二)
    Intel芯片组,南桥芯片ICH7、ICH8、ICH9、CH10
    网络安全协议之比较(SSH、PKI、SET、SSL)
    【转】CALayer教程很好用
  • 原文地址:https://www.cnblogs.com/shenlailai/p/10583869.html
Copyright © 2011-2022 走看看