【SpringBoot】整合Redis,从单机到集群

1、三种安装方式:

2、SpringBoot整合:

  • 引入依赖:
     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            <!--如需要变更jedis  需将lettuce排除-->
    <!--            <exclusions>-->
    <!--                <exclusion>-->
    <!--                    <groupId>io.lettuce</groupId>-->
    <!--                    <artifactId>lettuce-core</artifactId>-->
    <!--                </exclusion>-->
    <!--            </exclusions>-->
            </dependency>
    
    <!--        如需要变更 jedis  可使用此依赖-->
    <!--        <dependency>-->
    <!--            <groupId>redis.clients</groupId>-->
    <!--            <artifactId>jedis</artifactId>-->
    <!--            <version>3.0.1</version>-->
    <!--        </dependency>-->
  • spring-boot-starter-data-redis 内置的是 Lettuce
  1. 优点:Lettuce的连接是基于Netty的,抗并发能力强,连接实例可以在多个线程间共享,如果你不知道Netty也没事,大致意思就是一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。
  2. 缺点:报错 OutOfDirectMemoryError  

3、Redis在高并发下出现的问题以及解决思路:

  • 缓存穿透:假如100万并发量访问某一不存在数据,如果不对该数据进行null缓存,则100万并发会穿过缓存直击数据库,也就失去了缓存的意义了。
  •  缓存雪崩:当处于高并发状态时很多活跃缓存数据在同一时间失效,则请求会直击数据库造成压力。
  •  缓存击穿:热点缓存数据在高并发时刻过期失效,请求会直击数据库造成灾难。

4、Redis实现分布式锁: 

5、缓存数据一致性问题:

https://blog.youkuaiyun.com/striveb/article/details/95110502

6、使用lua脚本:

https://www.cnblogs.com/Howinfun/p/11803747.html

7、信号量:

https://blog.youkuaiyun.com/weixin_43931625/article/details/103232670

 

 

 

 

(集群将陆续奉上。。。)

 

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值