LZ4压缩算法的块数据格式解析

本文是针对 LZ4 Block Format Description 的部分内容的翻译和综述,解释了 LZ4 压缩算法的块数据的格式规定。

前言

LZ4 是使用了“固定的面向字节的编码格式”的一种 LZ77 类型的压缩算法。本文介绍的是块数据(Block)的格式规定,不涉及熵编码器(Entropy Encoder)和成帧层(Framing Layer),也不涉及压缩或解压算法的具体实现。

术语

  • 序列(Sequence)是组成块的基本单位。
  • 字面量(Literal)是未经过压缩的原始数据。
  • 匹配复制(Match Copy)是将“先前出现过的字面量”的值复制到新位置的操作。
  • 标志符(Token)是序列最开头的 1 Byte。
  • 偏移量(Offset)是匹配复制操作中定位“先前出现过的字面量”的依据。
  • 匹配长度(Match Length)是匹配复制操作中需要复制的字面量的长度。
Read more

开始上手Nginx服务器

本文是作者在 Ubuntu 系统上部署 Nginx 服务器的记录。

Nginx 基础

简介

Nginx 是一个高性能的服务器应用程序,由俄罗斯工程师 Igor Sysoev 于 2004 年开发。它主要被用于搭建HTTP 服务器反向代理服务器负载均衡服务器等各类 Web 服务器。

Nginx 的主要优势在于高并发和高能效。它采用异步、非阻塞的事件驱动架构,能处理大量并发请求(10K 量级)。同时,在相同的硬件条件下,Nginx 的 CPU 和内存消耗要低于同类产品 Apache。

安装方法

安装 Nginx:

1
2
sudo apt update
sudo apt install nginx -y

确保 Nginx 已启动且已设置开机自启动:

1
2
3
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

访问 http://<服务器地址>,若能显示出默认的 Nginx 欢迎页面(Welcome to Nginx),则表示安装成功。若无法访问,请检查服务器端的防火墙配置。

Hello World

以下内容演示了如何利用 Nginx 在本地的 80 端口部署一个简易的静态网站

Read more

开始上手PostgreSQL

本文是作者在 Ubuntu 系统上部署 PostgreSQL 数据库的记录。

数据库简介

数据库(Database,DB)是用于存储、管理和检索数据的信息系统,旨在保证数据的一致性、完整性和安全性。

主流分类

数据库主要分为关系型数据(SQL)和非关系型数据库(NoSQL)。主流的数据库列表格如下:

数据库 类型 适用场景 主要特点
MySQL SQL 传统网站 最流行的 SQL 数据库
SQLite SQL 轻量级应用 文件数据库
PostgreSQL SQL 企业级应用 支持复杂查询和高扩展性
MongoDB NoSQL 实时应用,API 驱动 灵活的 JSON-like 文档存储
Redis NoSQL 实时应用,缓存 内存数据库

SQL 指的是结构化查询语言(Structured Query Language),即数据库操作所使用的语言。

核心术语

  • 数据表(Table)简称表,是数据库中用于存储数据的基本结构,由若干行和列组成。
  • 行(Row)又称记录(Record)。
  • 列(Column)又称字段(Field)。
  • 主键(Primary Key)缩写为 PK,是用于唯一标识一条记录的字段。
  • 外键(Foreign Key)缩写为 FK,是用于与其他数据表的主键建立关系的字段。
  • 索引(Index)是一类用于加快查询速度的数据结构。
  • 事务(Transaction)是一组数据库操作的集合,遵循原子性、一致性、隔离性和持久性原则(ACID 原则)。

PostgreSQL 基础

简介

PostgreSQL(简称 Postgres)是一个开源的、功能强大的、企业级的关系型数据库管理系统,以稳定性、扩展性和标准兼容性著称。

安装方法

下面详细讲解 PostgreSQL 的部署步骤。

Read more

高等数学(下)知识框架

空间解析几何

向量

概念

定义: 既有大小又有方向的量。可以用有向线段 $\vec{M_1M_2}$、带箭头字母 $\vec{a}$、粗体字母 $\mathbb{a}$ 来表示。

向量的模: 向量的大小,记作 $|\vec{M_1M_2}|$ 或 $|\vec{a}|$ 或 $|\mathbb{a}|$。

向径(矢径): 起点为原点的向量。

自由向量: 与起点无关的向量(即只考虑大小和方向的向量)。

Read more

Ubuntu系统开荒记录

本文是作者自用的 Ubuntu 操作系统(版本 24.04)服务器的一次开荒记录。

初始化

使用 SSH 接入系统

在本地计算机上使用安全终端(Secure Shell,SSH)连接到远程服务器。命令行运行:

1
ssh <用户名>@<服务器地址>

上述命令是使用用户名和普通密码进行身份认证的,运行命令后需要输入密码。

事实上,采用此身份验证方式具有一定的暴力破解风险,因此推荐采用密钥对进行身份验证(后文会提到)。

Read more

军事理论知识整理

以下是《军事理论》课程的知识要点,整理自 2023 年印次的教科书、 WYJ 的手写提纲和其他网络资料。由于时代发展,军事理论的具体课程内容可能存在时效性。

国防

国防概述

定义: 国防是国家为了防备和抵抗侵略、制止武装颠覆、保卫国家主权、统一、领土完整、安全和发展利益所进行的军事及与军事有关的政治、经济、外交、科技、文化、教育等方面的活动。它是一种历史现象,旨在防备和抵御各种外来侵略,以保障国家安全、维护国家利益、促进国家发展。

对上面的定义进行分解,可以得到如下内容:

  • 主体: 国防的主体是国家
  • 对象: 国防的对象是 “侵略” “武装颠覆和分裂” 行为。
  • 目的: 国防的目的是保卫国家主权、统一、领土完整、安全和发展利益
  • 手段: 国防的手段是军事及与军事有关的政治、经济、外交、科技、文化、教育等方面的活动。
Read more

高等数学(上)知识框架

极限

极限是无限趋近但是取不到的过程,它是一个“去心”的过程。

函数极限

函数极限的六种形式:$x\to\infty$,$x\to+\infty$,$x\to-\infty$,$x\to 0$,$x\to 0^+$,$x\to 0^-$。注意,当我们说趋近于 $\infty$ 或趋近于 $0$ 时,是包括了正负两个趋近方向的。

Read more

函数项级数

前置知识

收敛域

给定一个定义于 $I$ 上的函数项级数 $\sum_{n=1}^{\infty} u_n(x)$,将 $x_0 \in I$ 代入其中,得到一个常数项级数 $\sum_{n=1}^{\infty} u_n(x_0)$。

如果 $\sum_{n=1}^{\infty} u_n(x_0)$ 收敛,则称 $x_0$ 为对应的函数项级数的收敛点,否则称为发散点。函数项级数的所有收敛点的全体称为收敛域,所有发散点的全体称为发散域

Read more

常数项级数

前置知识

无穷级数

给定一个无限数列 $u_1,u_2,\cdots,u_n,\cdots$ 并将各项依次相加,得到的和式 $\sum_{n=1}^{\infty} u_n$ 被称为无穷级数(简称级数)。

其中 $u_n$ 被称为级数的通项(又称一般项)。通俗地讲,无穷级数就是无限个数字相加所得的和式。

Read more

各类积分的概念与计算

定积分

定积分的定义

为了求直角坐标系中非负连续曲线 $y = f(x)$ 与竖直线 $x=a, \ x=b \ (a<b)$ 和 $x$ 轴围成的曲边梯形的面积,提出定积分(Definite Integral)的概念。

Read more
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×