概念介绍 MapReduce 是一种用于处理和生成大规模数据集的编程模型。 它将整个计算过程分为两个核心阶段:Map(映射) 和 Reduce(归并)。在 Map 阶段,数据被分成小块并并行处理,提取出中间的键值对结果;在 Reduce 阶段,框架会将所有具有相同键的数据聚合起来,由用户定义的逻辑进行归并处理,最终输出结果。 MapReduce 的…
# 🌟 VI 三种模式 1. 普通模式(默认进入) 2. 插入模式(编辑内容) 3. 命令模式(以 : 开头执行命令) ──────────────────────────────────────────── # ✅ 普通模式(移动/复制/删除/粘贴等) i → 进入插入模式(插入光标前) I → 插入到行首 a → 进入插入模式(插入光标后) A…
通用命令 1. KEYS <pattern> ---------------------------------- 作用:根据通配符匹配,列出所有符合条件的 key。 示例: KEYS user:* # 匹配所有以 user: 开头的 key 返回值:匹配的 key 列表 注意:遍历全库,性能差,**生产环境建议使用 SCAN 命令替代**。…
什么是NoSQL? NoSQL 是 "Not Only SQL" 的缩写(起初也有“No SQL”的另一种解释),表示“不仅仅是 SQL”。它泛指一类 非关系型数据库,与传统的关系型数据库(如 MySQL、PostgreSQL)不同,它们通常不使用固定的表结构(没有严格的“表、行、列”模型),而是采用更灵活的数据模型来存储数据。 NoSQL 的设计…
1. DAC(Discretionary Access Control) 自主访问控制 核心特点: 资源拥有者决定权限:用户对其拥有的资源(如文件)有控制权,可以授予或撤销他人的访问权限。 权限可继承/传播:被授权的用户可以继续把权限授予其他用户(这可能导致“权限扩散”)。 举例: 用户 A 拥有一个文件 file.txt,他设置权限让用户 B 也…
在嵌入式系统中,任务之间的通信是实现并发、同步和资源共享的关键。FreeRTOS 提供了多种通信机制,以满足不同的应用场景和性能要求。本文将重点介绍三种常用的通信方式:消息队列(Queue)、邮箱(Semaphore)和任务通知(Task Notification),并通过代码示例分析其适用场景和使用方法。 一、消息队列(Queue) 概述 消息队…
Java 方法声明结构 一个方法的声明包括了多个部分,下面是详细的结构及每一部分的解释。 1. 方法声明完整结构: [注解] [访问修饰符] [其他修饰符] <泛型声明> [返回类型] [方法名](参数列表) [throws 异常列表] 2. 每部分的详细解释: 部分说明注解用于给方法添加元数据。例如,@Override、@Deprec…
贪婪算法(Greedy Algorithm) 1. 基本思想 每一步都做当前看来最优的选择(即局部最优),希望通过一系列局部最优,达到整体最优。 特点是只顾眼前(每次选择最优),不回溯。 2. 贪婪问题分类 绝对贪婪问题: 每一步的局部最优选择,最终一定得到全局最优解。 例子:活动安排问题、最小生成树问题。 相对贪婪问题: 贪婪算法得到的解不是全局…
总结 对于同步和异步来说,最简单的说法就是:同步会按部就班的执行代码,一句一句的执行代码,所以遇到耗时操作会直接出现程序卡住的情况;异步会在异步语句时把操作交给别人(线程池、回调、消息队列)去干。 而异步和线程调度本质上并无关联,只是异步编程可能会用到线程调度(异步编程也可以用事件循环实现)。至于我们写的程序,如果说没有使用异步操作编写代码,程序卡…
项目理解 一个使用了ActiveMQ消息队列的订单-物流系统,两个系统之间通过消息队列来通信,主要有order.created.queue和logistics.updated.queue两个消息队列。 order.created.queue是一个订单创建消息队列。当新订单创建时,系统会将订单信息发送到此队列,通知其他系统或者服务去处理与该订单相关的…