news 2026/5/8 19:44:37

缓存redis

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
缓存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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 19:44:36

面试复盘4.0

1、说一下IP报文。 https://www.jb51.net/network/219379.html 2、mysql的主从同步 Mysql主从同步&#xff08;复制&#xff09; - kylinlin - 博客园 3、django中ORM的优化 批量查询等 django的orm操作优化 - Lowell - 博客园 Django ORM性能优化&#xff0c;数据存取优…

作者头像 李华
网站建设 2026/5/8 19:43:32

神经网络交换格式NNEF:打破AI模型部署的巴别塔困境

1. 神经网络部署的“巴别塔”困境&#xff1a;从训练到推理的鸿沟如果你在过去几年里尝试过将一个在云端训练好的深度学习模型&#xff0c;比如一个图像分类器或者一个语音识别模型&#xff0c;部署到手机、摄像头或者嵌入式设备上运行&#xff0c;那你大概率经历过一段“痛苦”…

作者头像 李华
网站建设 2026/5/8 19:37:34

VibeGuard:基于MITM代理与三层检测的AI编程隐私保护实战

1. 项目概述&#xff1a;一个为AI编程助手设计的隐私守护者如果你和我一样&#xff0c;日常开发已经离不开像Claude、ChatGPT、Cursor这类AI编程助手&#xff0c;那你一定有过这样的担忧&#xff1a;我提交给AI的代码片段里&#xff0c;会不会不小心夹带了API密钥、数据库连接字…

作者头像 李华
网站建设 2026/5/8 19:34:17

AI智能体预测市场交易沙盒:零风险模拟真实订单簿与策略回测

1. 项目概述&#xff1a;为AI智能体打造的零风险预测市场交易沙盒如果你正在开发一个AI智能体&#xff0c;并且希望它能学习、测试甚至精通在Polymarket这类预测市场上的交易策略&#xff0c;那么你很可能面临一个两难困境&#xff1a;要么用真金白银去冒险&#xff0c;要么只能…

作者头像 李华
网站建设 2026/5/8 19:33:59

从零实现轻量级LLM推理引擎:nano-vllm核心原理与工程实践

1. 项目概述&#xff1a;为什么我们需要另一个“轻量级”推理引擎&#xff1f;如果你最近在折腾大语言模型&#xff08;LLM&#xff09;的本地部署和推理&#xff0c;大概率听说过 vLLM 这个项目。它凭借 PagedAttention 等创新&#xff0c;在吞吐量上表现卓越&#xff0c;几乎…

作者头像 李华