![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis学习
文章平均质量分 86
努力学习的小飞侠
这个作者很懒,什么都没留下…
展开
-
Redis哨兵sentinel
哨兵巡查监控后台master主机是否故障,如果故障根据投票数自动将某一个slave库变为master,就行对外服务,称为无人值守运维。原创 2023-12-28 22:24:09 · 1123 阅读 · 0 评论 -
Redis管道
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤:1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回,通常以阻塞模式等待服务端响应。2 服务端处理命令,并将结果返回给客户端。上述两步称为:Round Trip Time(简称RTT,数据包往返于两端的时间)原创 2023-12-28 22:22:57 · 574 阅读 · 0 评论 -
Redis事务
开启:redis以MULTI开启一个事务入队:将多个命令入队,接到这些命令并不会立刻执行,而是将它们加入到等待队列当中触发:exec命令触发事务。原创 2023-12-27 22:35:08 · 376 阅读 · 0 评论 -
Redis之IO多路复用模型
解决同步阻塞IO模型下大量线程创建导致资源的浪费问题同步阻塞IO模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。直接调用 recv 函数从一个 socket 上读取数据。int main()recv(sock, …) //从用户角度来看非常简单,一个recv一用,要接收的数据就到我们手里了。每个用户请求到来都得占用一个进程来处理,来一个请求就要分配一个进程跟进处理,显然在高并发的情况下会导致资源的浪费所以必须要让,省去进程切换,创建,销毁的资源。原创 2023-12-07 16:30:06 · 1313 阅读 · 0 评论 -
Redlock算法实现Redis分布式锁
不幸的是,这是不可行的。例如,客户端可能会获取锁,在超过锁有效期(密钥过期的时间)的运行时间长于某些操作时被阻止,然后删除已由其他客户端获取的锁。客户端A加锁成功,就会启动一个watch dog看门狗,他是一个后台线程,会每隔10秒检查一下,如果客户端A还持有锁key,那么就会不断的延长锁key的生存时间,默认每次续命又从30秒新开始。该方案为了解决数据不一致的问题,直接舍弃了异步复制只使用 master 节点,同时由于舍弃了 slave,为了保证可用性,引入了 N 个节点,官方建议是 5。原创 2023-12-05 16:18:17 · 908 阅读 · 0 评论 -
Redis之五大基础数据类型(详细总结 面试必备)
Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。这 5 种数据类型是直接提供给用户使用的,是数据的保存形式,其底层实现主要依赖这 8 种数据结构:简单动态字符串(SDS)、LinkedList(双向链表)、Dict(哈希表/字典)、SkipList(跳跃表)、Intset(整数集合)、ZipList(压缩列表)、QuickList(快速列表)原创 2023-12-03 16:36:09 · 1089 阅读 · 0 评论 -
数据库和缓存双写一致性
引入Canal中间件工作原理与传统MySQL的主从复制类似MySQL的主从复制MySQL的主从复制将经过如下步骤:1、当 master 主服务器上的数据发生改变时,则将其改变写入二进制事件日志文件中;2、salve 从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变,如果探测到 master 主服务器的二进制事件日志发生了改变,则开始一个 I/O Thread 请求 master 二进制事件日志;原创 2023-10-17 22:32:39 · 37 阅读 · 0 评论 -
谈谈BigKey的理解
我们都知道Redis是一种kv键值对存储数据的非关系型数据库,当一个key的value值过大时,就会出现BigKey的问题,最直接的影响就是会影响我们redis的性能和稳定,所以我们需要清除和排查BigKey。原创 2023-10-17 01:06:08 · 48 阅读 · 0 评论 -
Redis的线程问题
首先应该清楚的是,redis的线程选择是根据版本进行更新的,所以不能单独的说redis是单线程还是多线程。redis的版本有很多3.x,4.x,6.x,7.x1.在redis3.x版本的时候redis是单线程实现的2.在redis4.x版本的时候,严格意义来说也不是单线程,而是负责处理客户端请求的线程是单线程,但是开始加了点多线程的东西(异步删除)3.2020年5月版本的6.0.x后及2022年出的7.0版本后,告别了大家印象中的单线程,用一种全新的多线程来解决问题。原创 2023-10-11 15:40:59 · 55 阅读 · 0 评论 -
Redis学习笔记(六)集群cluster
业精于勤,荒于嬉;行成于思,毁于随。原创 2023-09-20 21:24:38 · 82 阅读 · 1 评论 -
Redis学习笔记(五)Redis哨兵sentinel
redis哨兵原创 2023-09-20 10:22:52 · 36 阅读 · 1 评论 -
Redis学习笔记(四)Redis复制(Replica)
复制原理和工作流程slave启动,同步初请slave启动成功连接到master后会发送一个sync命令,一次完全同步将会被执行,slave自身数据将会被master数据覆盖清除初次连接,全量复制master节点收到sync命令会在后台保存快照(即RDB持久化,主从复制会触发RDB),同时收集所有修改数据命令并保存缓存起来,master节点执行完持久化后,将rdb文件和缓存的命令集一并发送给slave,以完成一次同步心跳持续,保持通信进入平稳,增量复制。原创 2023-09-20 00:00:18 · 223 阅读 · 1 评论 -
Dedis学习笔记(一)Redis持久化
优势:1.适合大规模的数据备份2.可以按照业务定时备份3.对数据的完整性和安全性要求不高4.RDB文件在内存中的加载速度比AOF快的多劣势:1.如果在快照的间隔时间发生故障那么会丢失在间隔时间的数据2.内存数据全量同步,如果数据量太大会导致IO严重影响系统性能结合了RDB和AOF的优点,既能快速加载又能避免丢失过多的数据。先使用RDB进行快照存储,然后使用AOF持久化记录所有的写操作,当重写策略满足或手动触发重写的时候,将最新的数据存储为新的RDB记录。原创 2023-09-18 23:51:20 · 156 阅读 · 0 评论