Zstandard(又名Zstd)是一款免费开源的快速实时数据紧缩程序,具有更高的紧缩比,由Facebook开发。它是用C言语编写的无损紧缩算法,因而它是一个原生的Linux程序。
需求的话,它能够献身紧缩速度,交换更高的紧缩比(紧缩速度与紧缩比这个组合能够逐级装备),反之亦然。它有一种用于小数据紧缩的特别形式,名为字典紧缩,能够用供给的任何样本集来构建字典。它带有一个指令行有用程序,用于创立和解码.zst、.gz、.xz和.lz4等文件。
重要的是, Zstandard有一套丰厚的API,支撑简直一切盛行的编程言语,包含Python、Java、JavaScript、Nodejs、Perl、Ruby、C#、Go、Rust、PHP和Swift等言语。
它在Facebook活跃用于紧缩多种格局的很多数据,支撑多种运用场景,适用于亚马逊Redshift数据库房等服务、Hadoop和Redis等数据库、Tor网络以及包含游戏在内的其他许多运用。
经过运用lzbench这种开源的内存基准测验东西,在一台运转Linux Debian的服务器上履行几项快速紧缩算法测验,获得了以下成果:
Zstandard紧缩测验
如安在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+
一旦装置了一切需求的开发东西,能够下载源代码软件包,进入到本地库房目录,构建二进制文件并装置,所下所示:
$ cd ~/Downloads $ git clone https://github.com/facebook/zstd.git $ cd zstd $ make $ sudo make install
一旦Zstandard装置结束,现在咱们能够进一步学习下面部分中Zstd指令示例的一些根本用法。
学习Linux中10个Zstd指令运用示例
Zstd的指令行语法一般与gzip和xz东西相似,不过有几个差异。
1.想创立.zst紧缩文件,只需供给一个紧缩文件名即可,或许运用-z标志也意味着紧缩,这是默许操作。
$ zstd etcher-1.3.1-x86_64.AppImage
或许
$ zstd -z etcher-1.3.1-x86_64.AppImage
2.想解紧缩.zst紧缩文件,运用-d标志或unzstd有用程序,如下所示:
$ zstd -d etcher-1.3.1-x86_64.AppImage
或许
$ 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选项,献身紧缩比,交换更高的紧缩速度;数值越大,紧缩速度越快。
$ 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是一种快速的实时无损数据紧缩算法和紧缩东西,供给了高紧缩比。测验一下,共享你的主意,也能够经过下面的反应表来发问。