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标准压缩测试

如何在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是一种快速的实时无损数据压缩算法和压缩工具,可提供高压缩比。 尝试一下,分享您的想法或通过下面的反馈表格提问。

zstd - 一种由Facebook使用的快速数据压缩算法的更多相关文章

  1. 基于TILE-GX实现快速数据包处理框架-netlib实现分析【转】

    最近在研究suricata源码,在匹配模式的时候,有tilegx mpipe mode,转载下文,了解一下. 原文地址:http://blog.csdn.net/lhl_blog/article/de ...

  2. 【7】AccessDB快速数据访问

    阅读目录 C#和VB数据访问的比较 AccessDB的设计 数据库的连接 三种主要操作 错误输出及调试 小结 回到顶部 C#和VB数据访问的比较 C#中要进行一次普通的数据库查询,需要创建连接,再根据 ...

  3. Apache Kudu: Hadoop生态系统的新成员实现对快速数据的快速分析

    A new addition to the open source Apache Hadoop ecosystem, Apache Kudu completes Hadoop's storage la ...

  4. C2B电商三种主要模式的分析_数据分析师

    C2B电商三种主要模式的分析_数据分析师 在过去的一年中电商领域血雨腥风,尤其是天猫.京东.苏宁.当当.易讯等B2C电商打得不亦乐乎.而随着B2C领域竞争进入白热化阶段,C2B模式也在天猫" ...

  5. 12月18日风险投资速递:Facebook收购实时体育数据提供商Sport Stream

    国内公司 1.手游公司成都掌沃无限获得近千万元天使投资 成都掌沃无限成立于2013年,是一家新成立的手机游戏开发商,创始人及CEO张涛拥有超过10年的游戏行业从业经验和连续创业经历,其首款游戏产品为& ...

  6. 虚拟化(五):vsphere高可用群集与容错(存储DRS是一种可用于将多个数据存储作为单个数据存储群集进行管理的功能)

    vsphere高级功能需要vcenter server和共享存储的支持才能实现.vsphere的高级功能有 vmotion.storage vmotion.vsphere HA.vsphere DRS ...

  7. Spanve:一种检测大规模空间转录组学数据中空间变异基因的有效统计方法

    文章题目 Spanve: an Effective Statistical Method to Detect Spatially Variable Genes in Large-scale Spati ...

  8. 3种方法教你PS快速去掉水印

    方法一:使用选框工具 勾选水印部分: 按住Shift+f5选择内容识别: 然后 ctrl+d 取消选择,水印就去掉了 PS:其实这个方法有个快捷办法,直接使用选框工具选中之后,按Delete就可以弹出 ...

  9. 集合并卷积的三种求法(分治乘法,快速莫比乌斯变换(FMT),快速沃尔什变换(FWT))

    也许更好的阅读体验 本文主要内容是对武汉市第二中学吕凯风同学的论文<集合幂级数的性质与应用及其快速算法>的理解 定义 集合幂级数 为了更方便的研究集合的卷积,引入集合幂级数的概念 集合幂级 ...

  10. flink01--------1.flink简介 2.flink安装 3. flink提交任务的2种方式 4. 4flink的快速入门 5.source 6 常用算子(keyBy,max/min,maxBy/minBy,connect,union,split+select)

    1. flink简介 1.1 什么是flink Apache Flink是一个分布式大数据处理引擎,可以对有限数据流(如离线数据)和无限流数据及逆行有状态计算(不太懂).可以部署在各种集群环境,对各种 ...

随机推荐

  1. js 中什么情况下返回 undefined 值

    1. 声明变量没有赋值 <script> let num console.log(num) //undefined </script> 2. 访问不存在的属性 <scri ...

  2. 新建 Blazor 项目 WebAssembly

  3. 云原生周刊:Cilium v1.16.0 发布|20240729

    开源项目 Cyclops Cyclops 是一个开源的开发工具,通过易于使用的用户界面简化了 Kubernetes,使其更易上手.不再需要使用 YAML 创建和配置 Kubernetes 清单,可以使 ...

  4. 深入浅出 Kubernetes 项目网关与应用路由

    KubeSphere 项目网关与应用路由提供了一种聚合服务的方式,将集群的内部服务通过一个外部可访问的 IP 地址以 HTTP 或 HTTPs 暴露给集群外部.应用路由定义了这些服务的访问规则,用户可 ...

  5. 电脑配置不够玩不了原神、剑三和魔兽世界?ToDesk云电脑来帮你!

    原神.剑网三.魔兽世界这种吃配置的游戏,对电脑硬件和软件的要求可都不低,所以当游戏玩家遇到配置一般的电脑,就只能望游戏而兴叹吗? 当然不用!云电脑成为你的游戏电脑平替之选. 用云电脑来玩游戏,不仅对你 ...

  6. Web渗透04_密码破解

    账号密码是任何一个系统都必备的要素. 弱密码 123456 654321 112233 admin 等等 默认密码 Tomcat控制台: tomcat/tomcat 明文传输 http的明文传输,可以 ...

  7. Java新特性--方法引用

    常见方法引用 方法引用可以让你重复使用现有的方法定义,并像Lambda一样传递它们. 方法引用可以看做是仅仅调用特定方法的Lambda表达式的一种便捷写法.类似于Lambda表达式,方法引用不能独立存 ...

  8. 一文彻底弄懂MySQL的各个存储引擎,InnoDB、MyISAM、Memory、CSV、Archive、Merge、Federated、NDB

    MySQL 中的存储引擎是其数据库管理系统的核心模块,用于处理不同类型的数据存储和检索操作.每种存储引擎都有自己的特点,适用于不同类型的应用场景.MySQL 最常用的存储引擎包括 InnoDB.MyI ...

  9. C++之OpenCV入门到提高002:加载、修改、保存图像

    一.介绍 今天是这个系列<C++之 Opencv 入门到提高>得第二篇文章.今天这个篇文章很简单,只是简单介绍如何使用 Opencv 加载图像.显示图像.修改图像和保存图像,先给大家一个最 ...

  10. C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...