Skip to main content

moregeek program

redis ”高级“应用场景 -- 限流、延时队列、幂等处理_wx630f055ce23fc的博客-多极客编程

🎨本篇脑图速览🎯🎈Redis限流是怎么做的?固定窗口计数固定窗口计数是指,假设我们的限流规则是:1min内最多只能访问10次,那么固定窗口就是固定了【 1min-2min】这个窗口内,只能有10次访问 ,相应的我们就要给这个窗口维护一个计数器。 为了节省空间,其实我们不需要维护一个个窗口,只需要维护当前访问时间所在的窗口即可,以及对应的计数器,当新的访问到达了下一个窗口时,则计数器重置即可。red

Read More

redis大key多key拆分方案_码农小宋的博客-多极客编程

业务场景中经常会有各种大key多key的情况, 比如:1:单个简单的key存储的value很大2:hash, set,zset,list 中存储过多的元素(以万为单位)3:一个集群存储了上亿的key,Key 本身过多也带来了更多的空间占用(如无意外,文章中所提及的hash,set等数据结构均指redis中的数据结构   )由于redis是单线程运行的,如果一次操作的value很大会对整个redis

Read More

【对线面试官】如何实现去重和幂等_wx62e3937b6ca7e的博客-多极客编程

面试官:要不你来讲讲你最近在看的点呗?可以拉出来一起讨论下候选者:最近在看「去重」和「幂等」相关的内容面试官:那你就先来聊聊你对「去重」和「幂等」的理解吧候选者:我认为「幂等」和「去重」它们很像,我也说不出他们之间的严格区别候选者:我说下我个人的理解,我也不知道对不对候选者:「去重」是对请求或者消息在「一定时间内」进行去重「N次」候选者:「幂等」则是保证请求或消息在「任意时间内」进行处理,都需要保

Read More

详细解析Redis中的布隆过滤器及其应用-多极客编程

什么是布隆过滤器 布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告诉你某种东西一定不存在或者可能存在。当布隆过滤器说,某种东西存在时,这种东西可能不存在;当布隆过滤器说,某种东西不存在时,那么这种东西一定不存在。 布隆过滤器相对于Set、Map 等数据结构来说,它可以更高效地插入和查询,并且占用空间更少,它也有缺点,就是判断

Read More

基于Redis分布式BitMap的应用-多极客编程

一、序言 在实际开发中常常遇到如下需求:判断当前元素是否存在于已知的集合中,将已知集合中的元素维护一个HashSet,使用时只需耗时O(1)的时间复杂度便可判断出结果,Java内部或者Redis均提供相应的数据结构。使用此种方式除了占用内存空间外,几乎没有其它缺点。 当数据量达到亿级别时,内存空间的占用显著表现出来,BitMap便是解决此类问题的一种途径。 二、BitMap结构 1、内存消耗分析

Read More

详解布隆过滤器的原理和实现-多极客编程

为什么需要布隆过滤器 想象一下遇到下面的场景你会如何处理: 手机号是否重复注册 用户是否参与过某秒杀活动 伪造请求大量 id 查询不存在的记录,此时缓存未命中,如何避免缓存穿透 针对以上问题常规做法是:查询数据库,数据库硬扛,如果压力并不大可以使用此方法,保持简单即可。 改进做法:用 list/set/tree 维护一个元素集合,判断元素是否在集合内,时间复杂度或空间复杂度会比较高。如果是微服务的

Read More

哈希算法篇 - 布隆过滤器#yyds干货盘点#-多极客编程

之前写了个布隆过滤器,用于千万级新闻 url 去重。如果不了解可以看这里: 布隆过滤器:公众号地址随时看 如果建立写了布隆过滤器,大家在面试的时候,肯定都会被问到Hash的知识,以下是面试场景: 你用的哈希函数是什么? 你还知道哪些哈希函数? @[toc] 前言 本文继上一篇布隆过滤器续写 : 布隆过滤器:公众号地址随时看 多种哈希函数介绍 常用的字符串Hash函数还有ELFHash,APHash

Read More