当前位置: 首页 > news >正文

缓存redis

1.责任链模式 设计缓存模块

视频限流
笔记

---------------dd----------------
hm-redis笔记 基础-实战-高级-原理
hm-redis-项目
redis-基本使用
redis-zhoyang-硅谷大厂
------------ddd---------

--------------------hm-redis----------------

笔记链接描述
黑马总体可以看看包括5种数据类型+一些原理+底层数据结构+事物+aof rob+key过期和淘汰策略
redis-入门篇-黑马包括5种数据类型常用命令,整合spring
redis-入门篇-黑马redis-常见命令 5种+bitmap+hyperLoglog+Geo
redis-实战篇-黑马第二章 商户缓存—缓存更新策略 ,缓存双写一致性,穿透击穿雪崩、 缓存穿透代码
redis-实战篇-黑马第三章 优惠券秒杀,redis全局id乐观锁实现秒杀单机一人一单分布式锁luaredission、秒杀优化–阻塞队列实现秒杀
redis-实战篇-黑马第7章 redis消息队列list pubsub stream
redis-实战篇-黑马第8章 探店实现点赞set集合 ,点赞排行榜sortedSetzadd key value score
第9章 实现 好友关注、等
第10章 附近商户 GEO 用户签到 BitMap Uv统计 hyperLoglog
黑马redis-分布式锁
redis-高级篇-黑马rdb-aof、、aof–rdb原理
redis-高级篇-黑马redis-主从、 redis-哨兵 、redis-集群
redis-高级篇-黑马最佳实战 redis-bigkey、批处理 pipline,mset
redis-高级篇-黑马最佳实战 服务端优化、持久化配置、命令以及安全配置、内存划分配置
redis-原理篇-黑马redis-对象模型redis-数据类型的基础结构、、 redis-原理
redis-原理篇-黑马redis-对象模型网络模型、内存回收(惰性、周期)、内存淘汰策略

AOF日志原理详解—一处拷贝两处日志

美团redis-rehash

redis 的一些笔记

2、六种淘汰策略

检测全库数据 allkeys-random:随机删除 allkeys-lru:使用 LRU 算法进行筛选删除 allkeys-lfu:使用 LFU 算法进行筛选删除 noeviction(默认策略):对于写请求不再提供服务, 直接返回错误(DEL请求和部分特殊请求除外) volatile-random:随机删除 volatile-ttl:根据过期时间先后进行删除,越早过期的越先被删除 volatile-lru:挑选最近最少使用的进淘汰 volatile-lfu:最近使用次数最少的数据进行淘汰。

3.bitmap

3.1 问题

目前有10亿数量的自然数,乱序排序,需要对其进行排序。限制条件,在32位机器上面完成,内存限制位2G ?
使用bitmap , 去重且排序。 限制 去重了。

3.2 布隆过滤器

布隆-缓存穿透 代码

3.3 redis hash 扩容

hash 非常大,需要去扩容,redis是怎么扩容hash 的?

3.3.1 list 实现

解决方法:先将上面案例中的100次调整为10次便于在次场景中描述,要精确的保证同一个用户每分钟最多访问10次,需要记录下来用户每次访问的时间。因此对每个用户我们使用一个List列表类型的键来记录他最近10次访问的时间,一旦键中的元素超过10个,就判断最早的元素距离现在的时间是否小于1分钟。如果是表示用户最近1分钟访问次数超过了10次,如果不是就将现在的时间加入到队列中,同时把最早的元素删除。

Stringkey="rate.limiting:"+IP;intlistLength=llen(key);if(listLength<10){lpush(key,new());}else{longtime=lindex(key,-1);if(now()-time<60){log.info("访问频率超过了限制,请稍后再试");}else{lpush(key,now);ltrim(key,0,9);}}

3.3.2 zset 实现

localkey=KEYS[1]-- 限流 Keylocalwindow_size=tonumber(ARGV[1])-- 窗口大小(毫秒),如 60000localthreshold=tonumber(ARGV[2])-- 阈值,如 100localnow=tonumber(ARGV[3])-- 当前时间戳(毫秒)localmember=ARGV[4]-- 请求唯一标识-- 1. 移除窗口外的旧数据redis.call('ZREMRANGEBYSCORE',key,0,now-window_size)-- 2. 添加当前请求redis.call('ZADD',key,now,member)-- 3. 统计当前窗口内的请求数localcount=redis.call('ZCARD',key)-- 4. 设置 Key 过期时间(略大于窗口,防止内存泄漏)redis.call('PEXPIRE',key,window_size+1000)-- 5. 返回是否允许通过(1: 允许,0: 拒绝)ifcount<=thresholdthenreturn1elsereturn0end
http://www.jsqmd.com/news/778542/

相关文章:

  • P1227 完美的对称【洛谷算法习题】
  • SAP STO跨公司交易配置避坑指南:从采购订单到交货单的完整流程(含VL10B/VL02N操作)
  • 基于MCP协议构建钉钉知识库AI助手:打通企业知识孤岛
  • Proteus仿真STM32串口老是失败?从虚拟串口配置到代码调试的完整避坑指南
  • 基于FPGA与open-nic-shell构建高性能智能网卡:从架构到实践
  • 革命性AI评估平台EvalAI:如何快速搭建你的第一个机器学习挑战赛
  • 面试题整理 1
  • Anse多会话模式详解:单次对话、连续对话与AI绘图实战
  • AI开发环境一键配置:从CUDA到PyTorch的自动化部署实践
  • 代码片段管理新范式:从存储到智能协作的开发者效率革命
  • Go QML图像提供者详解:动态图像生成与加载
  • GD32F103RCT6高级定时器PWM实战:用CubeMX+Keil5快速配置呼吸灯(附完整工程)
  • FPGA开源开发利器Apio:一键式工具链整合与快速原型实践
  • YOLOv11改进 | 主干/Backbone篇 | 利用目标检测移动端网络MobileNetV1替换Backbone(支持v11n、v11s、v11m)
  • PointNet终极指南:如何用知识蒸馏实现3D点云模型的高效压缩
  • 从零实现轻量级GPT:深入理解Transformer架构与自注意力机制
  • 跨境网络性能深度解析:基于智能路由的GitHub访问架构优化与延迟降低80%方案
  • React Cloud Music组件化设计:10个可复用UI组件的开发技巧
  • ARM架构核心特性与嵌入式开发实践指南
  • 面试复盘4.0
  • YOLOv11改进 | 主干/Backbone篇 | 反向残差块目标检测网络EMO一种轻量级的CNN架构(支持yolov11全系列轻量化)
  • xshell登录云服务器、创建新用户
  • Docspell性能优化技巧:让文档处理速度提升300%的终极指南
  • 现代网页设计实战:从设计系统到响应式组件的完整开发指南
  • Doorman负载测试实战:从模拟场景到真实环境
  • HBuilder X 3.1.12内置浏览器插件安装失败?试试这个管理员权限的解决方法
  • 5G NR物理层仿真第一步:手把手教你用MATLAB R2021b生成TM3.1a测试模型信号
  • KHI无代理部署:终极指南教你快速配置和使用
  • 真实 vmstat 数据做一次“生产级判读” - 小镇
  • 微服务心跳检测:从原理到Go语言实现轻量级健康监控