redis
文章平均质量分 78
HolidayLee.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis+lua+令牌桶算法实现分布式限流
注明:本文为整理记录笔记,不喜勿喷。有问题请留言。优快云转载必须有原文链接,有些链接找不到了,原文看到了可以留言私我。描述:令牌桶:以一定的速率向一个固定大小的桶里扔令牌,然后每次去桶里取令牌,取的到说明有流量,反之没有令牌桶算法:min((当前时间-上次更新桶时间) * 速率 + 桶里剩余的令牌数量,桶大小),即min(((currentMills - last_mill_second) / 1000)*rate+current_permits,max_burst)举例:在秒杀活动中原创 2021-03-30 15:28:57 · 1019 阅读 · 2 评论 -
redis遇到的几次重大问题记录下
问题1:复制风暴(单节点数据量超大)keys命令产生阻塞,超过cluster-node-timeout(15s)导致节点被判定为失联,开始主从切换并进行主从同步,由于client-output-buffer-limit(同步rdb slave 256mb 64mb 60s)repl-timeout(60s)repl-backlog-size(同步增量1m)限制导致同步失败,下一次再进行同步的时候又会由于参数限制导致失败从而陷入了死循环;解决方案:禁用keys等会产生阻塞的O(n)命令,调整参数clien原创 2021-03-25 14:47:04 · 528 阅读 · 0 评论 -
spring redis cluster模式下使用evalsha
使用spring封装的redis的单点模式和哨兵(sentinel)模式支持lua脚本预加载到内存中去,这样执行这个脚本的时候直接把SHA值传到redis就可以直接交到对应脚本并执行,这样能大幅度提升应用执行lua脚本的速度,但是cluster集群是不直接支持的,会直接抛异常思路(将lua脚本加载到每个节点,然后再去执行evalsha的时候就每个节点都能找到了):1.将lua脚本预加载...原创 2020-01-14 16:48:42 · 2469 阅读 · 1 评论
分享