1、三种安装方式:
- 三篇文章已经很全面了
- windows版redis使用
- linux版redis使用
- docker版redis使用
- 本文章附件中会带有 可视化redis工具 绿色版
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:
- 优点:Lettuce的连接是基于Netty的,抗并发能力强,连接实例可以在多个线程间共享,如果你不知道Netty也没事,大致意思就是一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。
- 缺点:报错 OutOfDirectMemoryError
3、Redis在高并发下出现的问题以及解决思路:
- 缓存穿透:假如100万并发量访问某一不存在数据,如果不对该数据进行null缓存,则100万并发会穿过缓存直击数据库,也就失去了缓存的意义了。
- 缓存雪崩:当处于高并发状态时很多活跃缓存数据在同一时间失效,则请求会直击数据库造成压力。
- 缓存击穿:热点缓存数据在高并发时刻过期失效,请求会直击数据库造成灾难。
4、Redis实现分布式锁:
- 一句话:加锁必须保证 key,value,过期时间具有原子性,要么同时成功,要么同时失败。解锁也要具有原子性。
- 使用redis自带锁: https://www.cnblogs.com/moxiaotao/p/10829799.html
- 使用 redisson 进行分布式锁
5、缓存数据一致性问题:
https://blog.youkuaiyun.com/striveb/article/details/95110502
6、使用lua脚本:
7、信号量:
https://blog.youkuaiyun.com/weixin_43931625/article/details/103232670
(集群将陆续奉上。。。)




6582

被折叠的 条评论
为什么被折叠?



