Redis
文章平均质量分 71
追风人聊Java
学习是一辈子的事
展开
-
Springboot中使用Redisson实现分布式锁
1. 概述老话说的好:便宜没好货,有价值的商品,即使再贵,也有人会买。言归正传,今天继续讨论有关“锁”的话题,synchronized 和ReentrantLock 大家应该都非常熟悉了,但这两个锁,作用域仅限制于单个Tomcat,如果使用了 Tomcat 集群,这两个锁就不管用了。此时我们就要引入分布式锁了,分布式锁的实现方式有很多,可以使用 Mysql 数据库实现,也可以使用 Zookeeper 实现,当然比较常用的还是使用 Redis 实现。今天我们就来聊一下基于 Redis 的.原创 2021-10-10 16:29:17 · 788 阅读 · 0 评论 -
跨域分布式系统单点登录的实现(CAS单点登录)
1. 概述上一次我们聊了一下《使用Redis实现分布式会话》,原理就是使用 客户端Cookie + Redis 的方式来验证用户是否登录。如果分布式系统中,只是对Tomcat做了负载均衡,或者所有的子系统都在同一个二级域名下,则客户端Cookie + Redis 的方式是可以支持验证用户是否登录的。如果分布式系统中包含了不同域名的子系统,之前的客户端Cookie + Redis 的方式就不支持了,因为二级域名不同,Cookie无法共享。例如:浏览器在子系统A的二级域名中保存了Cookie..原创 2021-09-17 00:12:34 · 1189 阅读 · 0 评论 -
使用Redis实现分布式会话
1. 概述传统的单体应用中,用户是否登录,通常是通过从Tomcat容器的session中获取登录用户信息判断的。但在分布式的应用中,通常负载均衡了多台Tomcat,每台Tomcat都有自己独立的session,用户的每次请求都可能到达不同的Tomcat,因此可能会出现需要登录多次或者登录无效的情况出现。为了解决这个问题,就需要使用一个缓存中间件,将登录用户的信息存入这个缓存中间件,所有的Tomcat都从缓存中间件中获取登录用户信息,从而判断登录状态。Redis就是一个很好用的缓存中间件,接下原创 2021-09-15 19:13:57 · 580 阅读 · 0 评论 -
缓存穿透与缓存雪崩
1. 概述缓存穿透和缓存雪崩是在实际项目中,经常能遇到的问题。今天我们就简单聊聊缓存穿透和缓存雪崩的这两个话题。2.缓存穿透2.1 什么是缓存穿透?简单说就是用户发起请求时,始终匹配不到缓存中的数据,每次都直接通过关系型数据库进行查询,并得到数据。如果这个请求的并发量非常的大,非常多的用户在同一时刻去执行这个请求,那么会超出关系型数据库的负载,从而导致数据库的宕机。2.2 解决方案一:优化代码逻辑其中一个解决方案,就是编写代码时,逻辑要严谨,反复自测,保证任何条件的查原创 2021-09-14 17:36:57 · 184 阅读 · 0 评论 -
Redis集群的搭建及与SpringBoot的整合
1、概述之前聊了Redis的哨兵模式,哨兵模式解决了读的并发问题,也解决了Master节点单点的问题。但随着系统越来越庞大,缓存的数据越来越多,服务器的内存容量又成了问题,需要水平扩容,此时哨兵模式就无法支持了,需要使用Redis的集群模式(Redis Cluster)。Redis的集群模式(Redis Cluster),支持扩容、负载均衡、主从高可用,最经典的集群配置方案是三主三从,也就是三台Master服务节点,三台Slave服务节点。接下来我们就来聊聊三主三从的Redis集群是如何搭建原创 2021-09-13 16:12:24 · 387 阅读 · 0 评论 -
Redis哨兵机制的实现及与SpringBoot的整合
1. 概述前面我们聊过Redis的读写分离机制,这个机制有个致命的弱点,就是主节点(Master)是个单点,如果主节点宕掉,整个Redis的写操作就无法进行服务了。为了解决这个问题,就需要依靠“哨兵”,今天我们就来聊聊哨兵机制如何实现,且如何与SpringBoot进行整合。2. 场景描述主服务器IP:192.168.1.144从服务器A IP:192.168.1.22从服务器B IP:192.168.1.8这三台服务器上都已经安装好了Redis环境,安装方法参见我的另一篇文章原创 2021-09-12 14:00:48 · 354 阅读 · 0 评论 -
Redis的读写分离
1、概述随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力。读写分离(主从复制)是一个比较简单的扩展方案,使用多台机器同时运行Redis服务,一台负责写服务,多台负责读服务,通过多台服务器对请求进行负载,大大提高了Redis服务的负载压力。最常见的读写分离是一主二从的模式,一台主服务器负责Redis写入服务,两台从服务器负责Redis的读取服务,从服务器定时从主服务器复制Redis数据。今天我们就来聊聊Redis原创 2021-09-11 15:56:27 · 1176 阅读 · 0 评论 -
Redis的持久化机制与内存管理机制
1、概述Redis的持久化机制有两种:RDB 和 AOF ,这两种机制有什么区别?正式环境应该采用哪种机制?我们的服务器内存资源是有限的,如果内存被Redis的缓存占满了怎么办?这就要看Redis的内存管理策略是怎么配置的了。今天我们就来聊一下上面提出的这两个问题。2、Redis的持久化机制2.1 RDB1、什么是RDB?RDB 全称 Redis DataBase,是 Redis 默认的持久化机制。RDB机制的原理是:每隔一段时间把Redis在内存中的数据写到磁盘,手动停止R原创 2021-09-10 16:29:12 · 230 阅读 · 0 评论 -
Redis知识收集
一般推荐Redis设置内存为最大物理内存的四分之三如果你想把Redis当做一个缓存来用,所有的key都有过期时间在redis的conf文件中这样去设置,并不需要每个key都单独使用EXPIRE命令去设置过期时间maxmemory 2048mb # 最大内存是2Gmaxmemory-policy allkeys-lru # 使用算法当内存到达最大内存时,自动删除创建时间靠前的缓存建...原创 2019-06-24 15:14:40 · 249 阅读 · 0 评论 -
redis从单机到HA高可用集群的部署策略总结
最近在研究redis的部署,看了很多方案,现在总结一下单机模式最初接触redis,用的就是单机模式,最简单的一种模式,client直接访问1个redis服务。优点:入门级,部署简单。缺点:负载量小、容量小、容灾差。客户端分片模式客户端分片也是常见的一种模式,就是有多个redis服务,利用客户端的机制将数据存储到不同的redis服务中,然后从不同的redis服务中读取。优点:实现了分片...原创 2019-06-19 23:01:21 · 427 阅读 · 0 评论