海量数据处理 海量数据处理 如何从大量的 URL 中找出相同的 URL? 题目描述:给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。 解答思路:每个 URL 占 64B,那么 50 亿个 URL 占用的空间大小约为 320GB。 5, 000, 000, 000 _ 64B ≈ 5GB _ 64 = 320GB 由于内 2024-01-10 面试 #面试
系统设计 分布式、系统一致性以及高并发 分布式系统基本概念 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标: Consistency Availability Partition tolerance 它们的第一个字母分别是 C、A、P。Eric Brewe 2024-01-06
Redis Redis面试知识点 听说过Redis吗?它是什么? Redis是一个数据库,不过与传统数据库不同的是Redis的数据库是存在内存中,所以读写速度非常快,因此 Redis被广泛应用于缓存方向。 除此之外,Redis也经常用来做分布式锁,Redis提供了多种数据类型来支持不同的业务场景。除此之外,Redis 支持事务持久化、LUA脚本、LRU驱动事件、多种集群方案。 Redis的五种数据结构整理 简 2023-12-25 面试 #面试 #Redis
MySQL MySQL知识点 关系型和非关系型数据库? 概念 关系型数据库:。关系数据库(或 SQL 数据库)以包含行和列的表格格式存储数据。列包含数据属性,行包含数据值。您可以链接关系数据库中的表,以更深入地了解不同数据点之间的相互关系。主要代表有SQL Server,Oracle,Mysql,PostgreSQL。 非关系型数据库:非关系数据库(或 NoSQL 数据库)使用各种数据模型来访问和管理数据。这 2023-12-23 面试 #面试 #MySQL
操作系统 操作系统 进程、线程和协程的区别和联系 进程 线程 协程 定义 进程是资源分配和拥有的基本单位 线程是程序执行的基本单位 用户态的轻量级线程,线程内部调度的基本单位 切换情况 进程CPU环境(栈、寄存器、页表和文件句柄等)的保存以及新调度的进程CPU环境的设置 保存和设置程序计数器、少量寄存器和栈的内容 先将寄存器上下文和栈保存,等切换回来的时候再进行恢复 切换者 操作系 2023-12-23 面试 #面试 #操作系统
设计模式 设计模式 UML类图 类之间的关系通常是我们需要关心的,而我们可以通过UML类图来描述类之间的关系。UML类图中的关系有以下几种: 泛化关系(generalization) 类的继承结构表现在UML中为:泛化(generalize)与实现(realize): 继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:(..是..) eg:自行车是车、猫是动物 泛化关系用一 2023-12-23 面试 #面试 #设计模式
计算机网络 计算机网络 一些术语的缩写 MSL(Maximum Segment Lifetime):传输层的概念,表示TCP报文最大存活时间 TTL(Time to Live):网络层的概念,每次IP数据包在网络中被路由器传递时,TTL值减一。当TTL减为零时,数据包会被丢弃,并向源发送一个 ICMP 时间超过消息。TTL用来防止数据包在网络中无限循环 RTT(Round-Trip Time): 往返时延 2023-12-23 面试 #面试
Cpp-static初始化 C++ static初始化 non-local static对象初始化(函数外) C++规定,non-local static 对象的初始化发生在main函数执行之前,也即main函数之前的单线程启动阶段,所以不存在线程安全问题。但C++没有规定多个non-local static 对象的初始化顺序,尤其是来自多个编译单元的non-local static对象,他们的初始化顺序是随机的。 loca 2023-11-23 #C++
C++知识点 C++知识点 C++ 知识点 说一下你理解的 C++ 中的四种智能指针 面试官你好,⾸先,说一下为什么要使用智能指针:智能指针其作用是管理一个指针,避免程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况的发生。 然后使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动 2023-11-23 面试 #面试 #C++
Ubuntu配置Clash Ubuntu配置Clash 下载Clash 首先下载Clash,以当前最新版本为例 1wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-amd64-v1.18.0.gz 使用以下命令解压下载的文件: 1gunzip clash-linux-amd64-v1.18.0.gz 使用以下命令将解压后 2023-11-02