redis
文章平均质量分 64
斯kk
猛攻Java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis分布式锁解决优惠券超卖
用户领取优惠券时,先生成一个锁的key,比如:`coupon:lock:1001`- 用`SET lock_key user_id NX EX 10`命令尝试获取锁。Redis 是一个开源的内存数据结构存储,它是一个独立的数据库/缓存服务。- 这个命令是原子的,保证设置值和过期时间一起完成。- NX:只有锁不存在时才能设置(互斥)- 用Lua脚本保证原子性,只删除自己的锁。- 启动一个看门狗线程,每隔几秒给锁续期。- 保证业务执行时间不会超过锁的过期时间。- 业务完成后,删除这个key释放锁。原创 2025-12-25 21:41:15 · 220 阅读 · 0 评论 -
Redis三大问题:穿透、击穿、雪崩(实战解析)
/ 场景:一个热点key在缓存过期瞬间// 大量并发请求同时来查这个key// 问题代码:// 缓存刚好过期// 大量请求同时到达这里!// 都会去查数据库// 重新缓存// 结果:瞬间大量请求打到数据库,可能压垮数据库// 场景:大量缓存key在同一时间过期// 导致所有请求都打到数据库// 问题代码:// 初始化缓存,设置相同过期时间i <= 10000;i++) {// 都1小时后过期// 1小时后,所有缓存同时过期。原创 2025-12-21 16:44:41 · 508 阅读 · 0 评论 -
Redis与MySQL双写一致性(实战解决方案)
Component@Autowired/*** 通用的Cache Aside读模板*/// 1. 读缓存if (value!= null) {// 2. 读数据库// 缓存空值,防止缓存穿透// 3. 写缓存/*** 通用的Cache Aside写模板*/// 1. 更新数据库// 2. 删除缓存// 使用模板@Service@Autowiredkey,5,});读多写少 → Cache Aside Pattern。原创 2025-12-21 15:58:50 · 455 阅读 · 0 评论 -
Redis数据结构大全(从基础到实战)
数据结构底层实现特性常用场景StringSDS(简单动态字符串)二进制安全,可修改缓存、计数器、分布式锁List双向链表/压缩列表有序,可重复消息队列、最新列表Hash哈希表/压缩哈希表键值对集合对象存储、购物车Set哈希表/整数集合无序,不重复标签、共同好友ZSet跳表+哈希表有序,不重复排行榜、延迟队列BitmapString的位操作位操作用户签到、活跃统计特定算法基数估算UV统计GEOZSet封装地理位置附近的人、摇一摇。原创 2025-12-20 23:17:21 · 369 阅读 · 0 评论 -
Redis是单线程,为什么其性能还是这么强?
CPU几乎不会因为等待磁盘io而空闲。原创 2025-09-08 16:49:52 · 161 阅读 · 0 评论 -
redis作为缓存,MySQL的数据怎么和Redis保持一致呢?(双写一致)
就说我最近做的这个项目,里面有xxxx(根据自己的简历上写)的功能,需要让数据库与redis高度保持一致,因为要求时效性比较高。它是读写、读读都互斥,这样就能保证在写数据的同时,是不会让其他线程读数据的,避免了脏数据。就说我最近做的这个项目,里面有xxxx(根据自己的简历上写)的功能。当mysql数据更新以后,Canal会读取binlog数据,然后再通过Canal的客户端获取到数据,并更新缓存即可。:延迟双删,如果是写操作,我们先把缓存中的数据删除,然后更新数据库,最后再延时删除缓存中的数据。原创 2025-08-22 08:28:29 · 291 阅读 · 0 评论 -
redisIO模型
它的作用是像一个高效的“哨兵”,负责监视所有连接上的事件(Event),比如哪些连接有数据可读了(可读事件)、哪些连接可以写入数据了(可写事件)。它通过IO多路复用来实现高并发的连接管理,而通过单线程来执行命令,从而避免了锁的复杂性,实现了简单性和高性能的统一。 处理客户端的命令请求,读取Socket中的数据,并将其缓冲到每个客户端对应的缓冲区中。 处理新的客户端连接请求,建立连接,并将新Socket注册到多路复用器上。,避免了线程切换和锁竞争带来的巨大开销,能够用极少的资源管理海量连接。原创 2025-08-22 07:59:42 · 626 阅读 · 0 评论 -
redis入门及使用
启动:redis-server.exe redis.windows.conf。-h IP地址 -p 端口号。原创 2025-05-14 15:10:13 · 371 阅读 · 0 评论 -
redis穿透、击穿、雪崩
数据库、redis中没有这个数据挡住无效请求,重复请求当缓存未命中时,先抢互斥锁,只有获取锁的线程可以查询数据库,其他缓存未命中的线程等待或返回默认值其他缓存未命中的再去抢锁。原创 2025-06-13 21:21:37 · 997 阅读 · 0 评论 -
redis分片集群架构
主从集群解决高并发,哨兵解决高可用问题。但是任然有两个问题没有解决:1海量数据存储问题;2高并发写的问题(如果服务中有大量写的请求)那就可以采用分片集群架构解决这些问题。原创 2025-06-07 20:42:33 · 476 阅读 · 0 评论 -
redis哨兵模式
主从模式有缺陷,保证不了redis集群的高可用。加入主节点宕机,就丧失了写数据的能力。为了保证redis集群的高可用,就提出了哨兵模式,实现主从集群的自动故障恢复。哨兵也是一个由多台redis节点(至少3台)组成的节点。原创 2025-06-07 20:13:49 · 409 阅读 · 0 评论 -
redis集群
单点redis并发能力是有限的,想要进一步提高并发能力,需要搭建redis集群,实现读写分离。一个主节点master,主要实现增删改操作,多个从节点实现读操作。当主节点修改了数据,必须要将数据同步给其他从节点。原创 2025-06-07 18:09:26 · 266 阅读 · 0 评论 -
redis分布式锁
集群情况下的定时任务、抢单、幂等性场景。原创 2025-06-05 21:47:33 · 400 阅读 · 0 评论 -
redis数据过期策略、淘汰策略
当redis内存不足时(全是没有过期的key),还要往reids里加数据时,Redis就会根据某一规则强制淘汰键(即使未过期)。主动清理过期键,每隔一定时间,抽取一定量的key进行检查,后面会全部遍历一遍。不会有得不到清理的key了。redis过期策略是两种模式的结合。LRU:最近最少使用。LFU:最少频率使用。原创 2025-06-05 21:09:19 · 460 阅读 · 0 评论 -
Redis持久化策略
Redis提供两种核心持久化策略(和),以及混合模式,确保数据在重启或崩溃后不丢失。原创 2025-06-05 19:32:00 · 913 阅读 · 0 评论 -
redis持久化策略
将命令转换为Redis网络协议(RESP)格式。先写入内存缓冲区,再根据策略刷盘。[命令执行] → [原创 2025-05-30 21:32:29 · 309 阅读 · 0 评论
分享