• 2025-01-07场景题:假设有40亿QQ号,但只有1G内存,如何实现去重?
    当数据量比较大时,使用常规的方式来判重就不行了。例如,使用MySQL数据库判重,或使用List.contains()或Set.contains()判重就不行了,因为数据量太大会导致内存放不下,或查询速度太慢等问题。1.空间占用量预测正常情况下,如果将40亿QQ号存储在Java中的int类型的话,一个int
  • 2025-01-01Spring Boot 使用 Redis 实现布隆过滤器,精准过滤 “无效” 请求
    SpringBoot使用Redis实现布隆过滤器,精准过滤“无效”请求在当今高并发的互联网应用场景下,如何高效地对海量数据进行过滤,避免无效请求对系统资源造成浪费,是每一个开发者都需要面对的问题。布隆过滤器(BloomFilter)作为一种空间效率极高的概率型数据结构,为我们提供了出
  • 2024-12-292 海量数据去重的问题
    问题:40亿QQ号,1G内存,怎么去重方式1:使用bitmap进行海量数据去重如果我们硬算,从1到40亿和40亿个QQ号做比对,然后有的就存储下来,没有就放弃,第一个性能很差,第二不满足1G内存的要求。这里我们使用bitmap进行海量数据去重的方式。什么是bitmap算法?其实很简单,假如我们有4个
  • 2024-12-11彻底理解布隆过滤器怎么解决缓存穿透问题
    一.业务背景实际业务中使用Redis,都是先通过用户插入数据到Mysql中,然后更新缓存到Redis,下一次用户再查询该数据的时候就可以通过Redis来进行查询。先看下图,是假设的一个用户查询的场景:首先用户查询的时候会去缓存里面查询,查看是否有该数据,如果不存在,就会去Mysql中查询,然后
  • 2024-11-25RabbitMQ---如何保证MQ幂等性?
    保证MQ幂等性通常是指保证消费者消费消息的幂等性。1、使用数据库的唯一约束去控制。添加唯一索引保证添加数据的幂等性。例如,对于订单处理场景,将订单号设置为唯一约束。当重复插入具有相同订单号的订单记录时,数据库会抛出异常,从而保证幂等性2、使用token机制总结:发送
  • 2024-11-24位图和布隆过滤器
    目录一.位图1.位图的概念2.位图的实现3.位图的应用二.布隆过滤器1.布隆过滤器的概念2.布隆过滤器的实现3.布隆过滤器的优缺点三.整体代码1.bitset.h2.BloomFilter3.Hash.cpp一.位图1.位图的概念1.面试题        给40亿个不重复的无符号整数,没排过序
  • 2024-12-10动态链接器(二):使用Rust实现一个elf动态链接器
    1动态链接器动态链接器(DynamicLinker)是操作系统的一部分,它能够在程序运行时动态地链接程序所需的共享库。两大libc——glibc和musl中都带有自己的动态链接器(ld.so)。通常来说,使用什么工具链编译,最终得到的PIE文件中INTERP段就会包含工具链对应libc的ld.so的路径。比如使用
  • 2024-12-02JavaScript 事件循环与异步编程详解
    JavaScript事件循环与异步编程详解1.事件循环基础概念JavaScript是单线程语言,但通过事件循环(EventLoop)机制实现了异步操作。事件循环包含以下关键组件:调用栈(CallStack)任务队列(TaskQueue/CallbackQueue)微任务队列(MicrotaskQueue)WebAPIs(浏览器环境)1.1基本运行机
  • 2024-12-01端口扫描工具(信息收集)
    1.masscan(kali自带)Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。masscan的扫描结果类似于nmap(一个很著名的端口扫描器),在内部,它更像scanrand,unicornscan,andZMap,采用了异步传输的方式。它和这些扫描器最主要的区别是,它比这些扫描器更快。而且,mass
  • 2024-12-01css如何消除字体的锯齿?
    CSS提供了几种消除字体锯齿(也称为抗锯齿)的方法,主要通过-webkit-font-smoothing和font-smoothing属性来控制。选择哪种方法取决于目标浏览器和所需的视觉效果。以下是几种常用的技巧:-webkit-font-smoothing(WebKit浏览器,例如Safari和Chrome):-webkit-font-smoothin
  • 2024-11-28如何做网页设计
    在这个数字时代,网页设计不仅仅是技术与艺术的结合,它更是一种讲述故事、传达信息、塑造品牌形象的媒介。那么,如何做网页设计呢?让我们一步步探索这个充满创意与挑战的过程。首先,明确目标与定位是网页设计的起点。你需要深入了解你的受众是谁,他们的需求是什么,以及你希望通过网站传递
  • 2024-11-25外贸ERP是否可以定制
    随着全球贸易规模的不断扩大,外贸企业面临着日益复杂的市场需求和多样化的客户要求。在这种背景下,企业常常寻找能够灵活适应自身业务流程的解决方案。这也让外贸企业在选择ERP(企业资源规划)系统时,开始关注其定制化的能力。本文将探讨外贸ERP系统的定制化特点,尤其是万达宝在这
  • 2024-11-24Learn to Develop an Inventory System in Unity 6 & Blender
    MP4创建|视频:h264、1280×720|音频:AAC,44.1KHz,2通道类型:在线学习|语言:英语|持续时间:108讲座(15h48m)|大小:11.1GB使用Unity6和Blender制作库存系统:ScriptableObjects,3D资产和交互式UI设计学习内容了解并使用Unity6实现一个有序的库存系统,包括项目类别和自
  • 2024-09-30Redis缓存穿透解决方案之一:布隆过滤器与计数型布隆过滤器概述以及两者在Spring中的使用
    布隆过滤器(BloomFilter)和计数型布隆过滤器(CountingBloomFilter)都是高效的概率性数据结构,用于判断某个元素是否在集合中。它们的设计目标是降低内存开销,通过多个哈希函数与位数组的组合,实现快速查询,但允许一定的误判率。文章目录1.布隆过滤器(BloomFilter)1.1原理1.2
  • 2024-09-25面试官:项目中如何实现布隆过滤器?
    谈起“布隆过滤器”相信大家都不陌生,它也算日常面试中的常见面试题了。例如,当面试官在问到Redis模块的相关问题时,可能会问到缓存穿透(Redis四大经典问题之一),而缓存穿透的经典解决方案之一,则是“布隆过滤器”。但是,对于布隆过滤器是什么?以及布隆过滤器的实现原理?相信大部分同学
  • 2024-09-19Python中使用Redis布隆过滤器
    Python中使用Redis布隆过滤器在Python中使用Redis布隆过滤器,可以利用redis-py库和redis-py-bloom扩展。布隆过滤器是一种空间效率高的概率性数据结构,适合用于判断某个元素是否在集合中。以下是如何在Python中设置和使用Redis布隆过滤器的步骤:安装依赖首先,确保你已经
  • 2024-09-10布隆过滤器(Bloom Filter)原理+实战
    布隆过滤器的作用是:可用来判断值可能在集合中和绝对不在集合中介绍布隆过滤器(BloomFilter)是1970年由布隆提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(hash函数)。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远
  • 2024-08-23什么是布隆过滤器,实现原理是什么?
    背景介绍在互联网中,我们经常遇到需要在大量数据中判断目标数据是否存在的情况。例如,在网络爬虫中,我们需要判断某个网址是否已经被访问过。为了实现这一功能,通常需要使用一个容器来存储已访问过的网址。如果将这些数据直接存储在磁盘中,每次判断都要进行磁盘查询,这将导致大量的I