
微服务-Redis相关知识
文章平均质量分 53
Redis 相关知识
Marzlam
志远行近/一步一个小目标-每个阶段做最好的自己~ 三年计划启动中·
展开
-
Redis 面试思路
原子加锁:通过 SET key unique_value NX PX timeout 命令实现原子性加锁,其中 NX 表示键不存在时设置,PX设置过期时间。偏向AP:Redis集群默认异步复制,主节点故障时可能丢失锁(但通过RedLock可提升一致性)。唯一标识:unique_value(如UUID)用于区分不同客户端,防止其他线程误删锁。锁续期:通过“看门狗”机制(守护线程定期续期)解决业务执行时间超过锁超时的问题。分段加锁:将资源(如库存)拆分为多个段(如100段),每个段独立加锁。原创 2025-03-18 16:29:07 · 516 阅读 · 0 评论 -
Redis 对于页面有步骤下一步保存处理
有步骤的页面一并保存思路原创 2022-10-10 13:29:32 · 626 阅读 · 0 评论 -
Redis分布式锁
分布式概念因为架构演变,才有了 有一变多,单个变集群的概念。相应的数据存储也从一处变成多处,也就是分布式的存储。 分散能力相同业务的资源能力分散化,高可用,高利用。业务A 的领域能力 可以 分散成 A1 A2 A3 A4 4台资源分散化,A1有问题 A2 A3 A4都能干活,而且服务的整合能力也是3倍。锁概念既然高可用,能力分散在多个服务器,锁是干嘛的,要知道,业务处理的能力在多再强大,对于数据核心处理的地方只有一个那就是 数据库资源,这个是共享的区域,锁就是为了 在高可用的情况下 确保安全。原创 2022-03-22 18:18:52 · 1665 阅读 · 0 评论 -
Redis 5种常用数据结构内部编码
字符串string3种编码 raw int embstr哈希hash2种编码 hashtable ziplist列表list2种编码 linkedlist ziplist集合set2种编码 hashtable inset有序集合zset2种编码 skiplist ziplist原创 2022-03-10 15:39:10 · 1205 阅读 · 0 评论 -
Redis持久化
为什么要持久化redis 一般用于缓存,基于内存,为什么要持久化?就是因为 缓存的作用 是 为数据库减轻压力,如果宕机 会对数据库冲击,比如停电了,缓存redis没了 就完蛋了,所以要持久化。防止意外丢失缓存对数据库冲击。持久化方式RDB +AOF 快照 加增量RDB快照 记录当时AOF 记录增量数据 日志追加Save指令 保存rdb文件 但是是单线程 阻塞形式操作,别的一些get set指令需要等待。Bgsave 指令 单独开一个 子线程 来持久化 比较 推荐可以配置 bg原创 2022-03-09 15:09:02 · 196 阅读 · 0 评论 -
Redis内存淘汰机制
为什么有淘汰机制?redis 基于内存,而内存是有容量的,肯定会要考虑存储空间不够的问题。有什么过期策略?定时删除:key过期了就删掉 定时任务一直监控。 CPU很忙要一直看着定期删除:一段时间后随机抽查key,过期了就删除。惰性删除:用到某个key,去检查是否过期,过期删除。内存很忙,不去查询就一直占着空间。所以一般是 定期+惰性 来达到一定程度的清理。如果不去查询,又没有抽查到,岂不是不完美让过期的key删除,还是会存在空间不足,于是淘汰机制强制处理。可以理解为,淘汰机制是 在一原创 2022-02-18 15:44:01 · 744 阅读 · 0 评论 -
Redis 管道pipeline
为何有这个pipeline?Redis 的性能高是一大优势,但是在通信层面,由于是 客户端 服务端 通过TCP 通信,肯定是有一定延迟呢。你会发现 通信 在执行命令的过程 包括四个部分:发送命令-〉命令排队-〉命令执行-〉返回结果从第一个到第四个消耗的时间总和称为 Round Trip Time(简称RTT,往返时间)。当客户端与服务器存在网络延迟时,RTT就可能会很大,这样就会导致性能问题。那有延迟,redis要是不发挥出优势怎么能行?于是开始想。说到底就是为了能够降低RTT 这个时间,怎么原创 2022-02-17 15:45:48 · 586 阅读 · 0 评论 -
Redis异步队列/延迟队列
Redis 除了呗广泛认知为 缓存外,还可以 作为 消息队列为什么能够作为消息队列?因为redis 的数据结构 list / zset 的存在,支持list结构 入队出队 的表现形式,搭配 rpush 生产消息,lpop 消费消息,可以实现 消息队列zset 结构 可以有过期时间的表现形式,可以实现 延迟队列怎么作为异步消息队列?1:1 生产一个 消费一个rpush 生产消息,lpop 消费消息.如果没有消息,没办法消费,就会一直空轮询导致性能下降,需要 sleep来到达保持性能,但原创 2022-02-17 11:48:27 · 1125 阅读 · 0 评论 -
Redis的keys命令与Scan
需求:获取出一部分 redis数据keyskeys 命令:一次性获取全部模式匹配想要数据,类似 sql 中的 select like操作smemberssmembers命令:一次性获取set集合中的所有元素全部想要数据 类似 sql 中 select * 操作ScanScan命令:迭代多次返回,类似 sql 中 游标利弊keys命令优点: 花的时间短keys命令的缺点:这个命令会阻塞redis多路复用的io主线程,如果这个线程阻塞,在此执行之间其他的发送向redis服务端的命令,都会阻原创 2022-02-16 16:37:52 · 1935 阅读 · 0 评论 -
Redis 缓存问题:雪崩,击穿,穿透
什么是缓存?缓存就是用来 挡刀的,为数据库创造一个良好的环境。挡刀挡的是什么? 是流量,而且是 热点时事流量,说白了就是 哪些数据请求当下火爆次数多,哪些就是当下流量。什么是雪崩?击穿?穿透?通俗的讲就是 缓存 歇逼了,挡刀失败,但是根据不同情况分了以下3种雪崩: 大面积的缓存失效 也就是key过期击穿: 一个key缓存失效,导致 访问数据库压力骤增穿透:...原创 2022-02-15 13:45:54 · 125 阅读 · 0 评论 -
Redis的常用数据结构
基础知识-数据结构5种基本数据结构 深入其他数据结构防止缓存击透数据结构设置key值过期5种基本数据结构 深入String 字符串Hash 哈希List 集合Set 列表Zset 有序列表其他数据结构HyperLogLog 基数统计 去重 主要适用场景是海量数据的计算。特点是速度快。占用空间小。比如计算网站每天访问的独立IP数量相关命令:PFADD 添加到HyperLogLog 中 不重复/部分不重复 即成功 返回1 失败返回0 ; PFCOUNT 统计Hyper原创 2022-02-15 13:43:01 · 340 阅读 · 0 评论 -
Redis 开天篇-安装配置
知道了redis的用处和优点,接下来就是要安装redis了。需要安装什么东西?1.安装redis 工具2.安装可视化工具 RedisDesktopManager 为了更好的操作如何安装?1.安装redisWindows 下安装下载地址传送门.Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。下载好之后要启动redis用 配置一下环境变量 方便启动右键原创 2022-02-15 13:26:47 · 272 阅读 · 0 评论 -
Redis 开天篇-学习路线
知道了redis的用处和优点,接下来就是要学习redis了。学习路线1.既然是数据库,数据存储上,肯定要知道 数据结构2.既然是数据库,数据一致性上,肯定要知道 如何持久化数据3.既然是分布式,读取数据上,肯定要知道 分布式锁4.既然是分布式,数据安全性上,肯定要知道 缓存雪崩/击穿/穿透处理5.既然是集群,数据备份性上,肯定要知道 主从架构6.既然是集群,数据管控性上,肯定要知道 哨兵模式7.既然是非关系数据库,比较上,肯定要知道 与memcache区别学习图片...原创 2022-02-15 11:12:52 · 475 阅读 · 0 评论 -
Redis 基础之io多路复用
什么是I/O什么是I/O 就是 input/output 网络上的输入输出现在是什么时代,数据时代,在通俗一点,就是流量时代,有流量就有资源控制能力,比如 抖音短视频、微博话题、直播平台。表面上看不论是文字评论,图片,或者视频流,其实本质就是在 输入信息输出信息。所以编程上面技术有很多目的都是为了更好的解决i/o问题。i/o定位输入输出的地方有很多1:网络io2:缓存io3: 硬盘ioi/O模型...原创 2021-07-16 20:10:29 · 371 阅读 · 0 评论 -
Redis 基础之基于内存/硬盘
磁盘与内存1:材料不同 磁盘有磁性 而内存是晶体管2:停电后 晶体管就不管用 也就是 没电 内存得数据就会丢失 而磁盘不会redis是基于内存得,那就意味着停电就会丢失数据,那为啥还基于内存勒?废话,因为内存快,相比停电这个利大于弊,所以需要安全方案(后续再讲)解决停电得弊端内存数据为什么就快了系统拿数据的过程 :基于硬盘是 硬盘–内存–cpu基于内存是 内存–cpucpu是跟内存打交道的,而cpu核心处理逻辑很快,基于内存肯定就快很多,1:省去了硬盘到内存的这一环节。2:内存原创 2021-06-10 17:31:53 · 1293 阅读 · 0 评论 -
Redis 基础之单线程多线程
程序写的代码,结果还是在电脑硬件的基础上执行,所谓的 单线程多线程 就相当于是cpu干活的时候 拆了几个任务,而单核 就是 一个cpu 多核就是多个cpu单线程与多线程的概念 是基于 硬件cpu的处理模式,单核的话,即使多线程微观上也是有时间顺序的(即使纳秒之间)...原创 2021-06-08 18:20:32 · 376 阅读 · 0 评论 -
Redis 开天篇 用生活感受技术~
-M- 程序源自于生活,又作用于生活~本章主题:redis是什么?redis好在哪? 为何不用其他技术? 如何学习redis?本章答案:底部解答。redis是什么?redis到底是个啥东西呢? 你可能听到这个问题 已经有一堆话抛到嘴边了~(nosql#非关系型数据库¥还有不知道这个的人吗?高效数据库呗/缓存’会用就行管它是啥呢;等等)hold on 抛出这个问题的想法是 从生活的角度 你是否能够说的出来?技术发展架构的发展过程是从: 单体架构(简单一体机-MVC-前后端分离)进化至原创 2021-06-07 18:50:15 · 173 阅读 · 0 评论