
Redis
文章平均质量分 74
Redis学习
skystep
这个作者很懒,什么都没留下…
展开
-
Redisson 三种集群部署模式使用
Redis 常见四种部署模式:单机部署、主从模式部署、sentinel 部署模式、分片模式,针对不同场景一般选择不同的集群部署模式。而 redisson 单机部署针对不同的部署模式分别提供了不同的 API 以统一操作。原创 2022-09-22 23:06:54 · 5741 阅读 · 0 评论 -
Redis 持久化
AOF (Append Only File) 持久化默认是关闭的,通过将 redis.conf 中将 appendonly no,修改为 appendonly yes 来开启AOF 持久化功能,如果服务器开始了 AOF 持久化功能,服务器会优先使用 AOF 文件来还原数据库状态。如图所示,将 RDB 数据文件的内容和增量的 AOF 命令文件存在一起。:把内存数据以快照的形式保存到磁盘上,在指定的时间间隔内,执行指定次数的持久操作,将内存中的数据集快照写入磁盘中,它是 Redis 默认的持久化方式。...原创 2022-09-01 00:02:30 · 308 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩
在并发的多个请求中,只有第一个请求线程能拿到锁并执行数据库查询操作,其他的线程拿不到锁就阻塞等着,等到第一个线程将数据写入缓存后,直接走缓存。说明:大量的热点 key 设置了相同的过期时间,导在缓存在同一时刻全部失效,造成瞬时数据库请求量大、压力骤增,引起雪崩,甚至导致数据库被打挂。在并发的多个请求中,只有第一个请求线程能拿到锁并执行数据库查询操作,其他的线程拿不到锁就阻塞等着,等到第一个线程将数据写入缓存后,直接走缓存。如图:每次请求都经过3、4、5,每次都要操作数据库,也就是缓存无效了。...原创 2022-08-31 23:26:30 · 377 阅读 · 0 评论 -
Redis 分片集群搭建
主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:海量数据存储问题,单台服务的磁盘存储终究是有瓶颈;master 负责写操作,高并发写情况下,单台 master 终究是有瓶颈;使用分片集群可以解决上述问题,分片集群有以下特征:在同一台虚拟机中开启 6 个 redis 实例,模拟分片集群,信息如下:创建出7001、7002、7003、8001、8002、8003目录,作为节点存储目录。在 /root/tmp/redis-cluster 下准备一个新的redis.conf文件,内容如下:原创 2022-07-11 00:34:07 · 542 阅读 · 0 评论 -
Redis 哨兵模式
Redis 主从模式是一主多从,从节点宕机还有其他的备份,但是主节点宕机了,必然引起系统的故障。为了解决这个问题,Redis 提供了哨兵模式,监控主从模式中的所有节点,如果主节点宕机,会选举从节点重新成为主节点。使整个主从服务正常运行。Redis 提供了哨兵机制来实现主从集群的自动故障恢复。其主要起到的作用如下:Sentinel 基于心跳机制监测服务状态,每个一秒向集群中的每个实例发送 ping 命令。一旦发现主节点故障, sentinel 需要在从节点选择新的主节点,选择依据:当选中其中一个从节点为新原创 2022-07-06 00:30:32 · 1140 阅读 · 0 评论 -
Redis 主从数据同步
redis 从节点第一次连接主节点采用的是全量同步,包括两个阶段:第一阶段:第二阶段:全量同步过程有一个问题:主节点如何判断一个从节点是第一次同步数据?实际上每一个 redis 节点都会有一个 replication id ,称为数据集ID。从节点第一次请求主节点,会带上 replication id,主节点收到从节点 replication id,和自己的 replication id 对比,如果不相同说明是第一次请求同步数据,主节点将自己的 replication id 发送给从节点,从节点存储主节点原创 2022-07-01 00:07:44 · 2644 阅读 · 1 评论 -
Redis 主从模式搭建
Redis 提供了主从库模式,以保证数据安全和提高访问速度,主从库之间采用的是「读写分离」的方式。redis版本: redis 7.0.2系统版本:CentOS Linux release 7.9.2009 (Core)由于是在同一个服务器上模拟 redis 主从模式,所以节点的端口会发生冲突,需要修改。master 端口slave 端口slave 端口修改 ip 参数由于主机上的 IP 可能有多个,为避免混乱,为每个节点配置 IP。修改 bind 参数和 protected-mode 参数b原创 2022-06-26 11:38:04 · 834 阅读 · 0 评论 -
Redisson 加锁解锁源码
对于 redisson 分布式锁的使用很简单:1、调用 getLock 函数获取锁操作对象;2、调用 tryLock 函数进行加锁;3、调用 unlock 函数进行解锁;注意 unlock 操作需要放到 finally 代码段中,保证锁可以被释放。getLockgetLock 实例化 RedissonLock,相当于 Lock lock = new ReentrantLock() 操作;tryLock这里是一系列的调用,可以直接跳过,直接进入到 tryAcquireOnceAsync 函数,看原创 2022-06-25 16:21:23 · 1633 阅读 · 0 评论 -
Redisson 分布式锁使用
上一篇尝试了对分布式锁实现的思考,发现要实现一把分布式锁并不简单,好在 Redisson 实现了对于分布式锁的要求。本章主要介绍 Redisson 中分布式锁的使用。原创 2022-06-19 22:36:51 · 752 阅读 · 0 评论 -
Redis 分布式锁实现
至此基本完成一把可用的分布式锁,看来实现分布式锁并不是简单的事情。为了确保分布式锁可用,需要确保锁的实现同时满足以下五个条件:- 互斥性:在任意时刻,只有一个客户端能持有锁;- 高可用:一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证其他客户端能加锁;- 安全性:加锁和解锁必须是同一个客户;- 高性能:加锁和解锁需要开销尽可能低;- 容错性:集群只要大多数Redis节点正常运行,客户端就能够获取和释放锁。...原创 2022-06-18 12:00:24 · 163 阅读 · 0 评论 -
Redis 基础
Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。原创 2022-06-17 00:27:53 · 146 阅读 · 1 评论