zstd - 一种由Facebook使用的快速数据压缩算法

Zstandard是一个快速的实时无损数据压缩算法和压缩工具,它提供了由Facebook开发的高压缩比。

Zstandard (也被称为zstd )是一款免费的开源,快速实时数据压缩程序,具有更好的压缩比,由Facebook开发。 它是用C语言编写的无损压缩算法 (在Java中有一个重新实现) - 因此它是一个本地Linux程序。

另请参阅Linux中的10 7zip(Data Comperssion)命令示例

当需要时,它可以将压缩速度交换为更高的压缩比率(压缩速度与压缩比率的权衡可以通过小增量来配置),反之亦然。 它具有小数据压缩的特殊模式,称为字典压缩,可以从任何提供的样本集中构建字典。 它带有一个命令行实用程序,用于创建和解码.zst.gz.xz.lz4文件。

重要的是, Zstandard拥有丰富的API集合,支持几乎所有流行的编程语言,包括Python,Java,JavaScript,Nodejs,Perl,Ruby,C#,Go,Rust,PHP,Switft等等。

它被积极用于压缩Facebook中多种格式和用例的大量数据; 服务,如Amazon Redshift数据仓库; 数据库,如Hadoop和Redis; Tor网络和许多其他应用程序,包括游戏。

通过使用lzbench (一种开源内存基准测试工具)在运行Linux Debian的服务器上执行多个快速压缩算法测试,可以获得以下结果。

Z标准压缩测试

Z标准压缩测试

如何在Linux中安装Zstandard压缩工具

要在Linux发行上安装Zstandard ,您需要从源代码进行编译,但在此之前,您需要使用发行包管理器在系统上安装必要的开发工具,如图所示。

$ sudo apt update && sudo apt install build-essential		#Ubuntu/Debian
# yum group install "Development Tools" 			#CentOS/REHL
# dnf groupinstall "C Development Tools and Libraries"		#Fedora 22+

一旦安装了所有需要的开发工具,现在您可以下载源软件包,进入本地repo目录,构建二进制文件并按照所示进行安装。

$ cd ~/Downloads
$ git clone https://github.com/facebook/zstd.git
$ cd zstd
$ make
$ sudo make install 

一旦安装了Zstandard ,现在我们可以进一步学习以下部分中有关Zstd命令示例的一些基本用法。

在Linux中学习10个Zstd命令使用示例

Zstd的命令行语法通常与gzipxz工具类似,但有一些差异。

1.要创建.zst压缩文件,只需提供一个压缩文件名即可,或者使用-z标志也意味着压缩,这是默认操作。

$ zstd etcher-1.3.1-x86_64.AppImage 
OR
$ zstd -z etcher-1.3.1-x86_64.AppImage 

2.要解压缩.zst压缩文件,请使用-d标志或unzstd实用程序,如图所示。

$ zstd -d etcher-1.3.1-x86_64.AppImage 
OR
$ unzstd etcher-1.3.1-x86_64.AppImage 

3.要在操作后删除源文件,默认情况下,源文件在成功压缩或解压缩后不会被删除,要删除它,请使用--rm选项。

$ ls etcher-1.3.1-x86_64.AppImage
$ zstd --rm  etcher-1.3.1-x86_64.AppImage
$ ls etcher-1.3.1-x86_64.AppImage

4.要设置压缩级别,zstd具有许多操作修饰符,例如,您可以指定压缩级别为-6 (数字1-19,默认值为3),如图所示。

$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage

5.要设置压缩速度,zstd的压缩速度比率为1-10 ,默认压缩速度为1 您可以使用--fast选项--fast压缩速度的压缩比,数字越高压缩速度越快。

$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage

6.要显示有关压缩文件的信息,请使用-l标志,例如用于显示有关压缩文件的信息。

$ zstd -l etcher-1.3.1-x86_64.AppImage.zst

7.要测试压缩文件的完整性,请使用-t标志,如图所示。

$ zstd -t etcher-1.3.1-x86_64.AppImage.zst

8.要启用详细模式,请使用-v选项。

$ zstd -v -5 etcher-1.3.1-x86_64.AppImage

9.使用其他文件压缩或解压缩格式,例如gzip,xz,lzma和lz4,使用--format=FORMAT ,如图所示。

$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
$ zstd -v --format=xz  etcher-1.3.1-x86_64.AppImage

10.要将zstd进程优先级设置为实时,可以使用选项-priority = rt ,如图所示。

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

-r标志指示zstd在字典上递归操作。 您可以找到许多有用的高级选项,以及如何通过查阅zstd手册页来阅读或创建词典。

$ man zstd

Zstandard Github存储库https//github.com/facebook/zstd

Zstandard是一种快速的实时无损数据压缩算法和压缩工具,可提供高压缩比。 尝试一下,分享您的想法或通过下面的反馈表格提问。


分享按钮