compress

自动支持图片webp格式压缩,图片服务器升级webserver

让人想犯罪 __ 提交于 2020-05-03 16:34:04
自动支持图片webp格式压缩,图片服务器升级webserver webp server 是开源免费的。 图片服务器升级,自动支持webp,得先升级openresty 用go写的 webserver 请求到jpg png gif这些,再缓存起来,外面请求还是jpeg这些,实际先到go返回的webp格式,当浏览器不支持webp的才返回源文件。 提升加载时间,图片从434KB减少到340KB,1/4(25%)的压缩率。 根据 caniuse 的统计情况, 主流浏览器(接近80%)都支持 webp 了,如果遇到 Safari 这样的奇葩,直接返回原图。 最重要的一点是——我们访问的 URL 可以完全不用改变,访客访问的依然是xxx.jpg ,但是得到的图片格式为:image/webp,而且体积减少了不少(25%)。 WebP的有损压缩算法是基于VP8视频格式的帧内编码[17],并以RIFF作为容器格式。[2] 因此,它是一个具有八位色彩深度和以1:2的比例进行色度子采样的亮度-色度模型(YCbCr 4:2:0)的基于块的转换方案。[18] 不含内容的情况下,RIFF容器要求只需20字节的开销,依然能保存额外的 元数据(metadata)。[2] WebP图像的边长限制为16383像素。 WebP 是一种衍生自 Google VP8 的图像格式,同时支持有损和无损编码。当使用有损模式

在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别

你离开我真会死。 提交于 2020-05-01 06:16:28
在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别 linux 命令中tar后跟的zxvf是什么意思:.tar.gz是一个压缩包 .tar只是打包而没有压缩 z:表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压 x :从 tar 包中把文件提取出来,也就是解压的意思 。 c:是压缩的意思 v:显示详细信息:在压缩或解压缩过程中显示正在处理的文件名 f:xxx.tar.gz : 指定被当前解压或是压缩命令处理的文件是 xxx.tar.gz Linux 中的tar命令详解 ------------------- [root@linux ~]# tar [- cxtzjvfpPN] 文件与目录 .... 参数: - c :建立一个压缩文件的参数指令(create 的意思); - x :解开一个压缩文件的参数指令! - t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c /x/ t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? - v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! - f :使用档名,请留意,在 f 之后要立即接档名喔

Linux tar命令之--exclude参数 排除指定的文件或目录

末鹿安然 提交于 2020-05-01 06:11:29
https://my.oschina.net/u/3285916/blog/1632552 参数: --exclude 打包时排除不需要处理的文件或目录 说明: tar -zcf a.tar.gz 打包的目录 --exclude=指定排除的文件所在的路径 总结: tar -zcf a.tar.gz 打包的目录 --exclude=指定排除的文件所在的路径 1)打包的目录使用相对路径,排除的文件只能接相对路径 2)打包的目录使用绝对路径,排除的文件接相对路径或绝对路径 3)建议打包的目录和排除的文件使用的使用路径时,保持一致,都是用绝对路径,或都是用相对路径 Linux打包和解包命令 tar -czvf test.tar.gz a.c #压缩a.c文件为test.tar.gz tar -tzvf test.tar.gz # 列出压缩文件内容 tar -xzvf test.tar.gz # 解压文件 Linux tar命令 https://www.runoob.com/linux/linux-comm-tar.html tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z

VS Code 设置缩进为4个空格

隐身守侯 提交于 2020-04-30 19:32:39
VS Code默认缩进为2两个空格,修改为4个空格的方法。 一、首选项->设置,设置"editor.detectIndentation": false 二、ctrl+shift+x 打开插件下载页面,搜索beautify插件下载 三、在用户配置中,配置beautify(用户配置打开方式见步骤一) { "beautify.language": { "js": { "type": [ "javascript", "json" ], "filename": [ ".jshintrc", ".jsbeautify" ] }, "css": [ "css", "scss", "less" ], "html": [ "htm", "html", "vue" ] }, "[html]": { "editor.defaultFormatter": "vscode.html-language-features" }, "less.lint.validProperties": [ "\"compress\": false", "\"sourceMap\": false" ], "less.compile": { "compress": false, "sourceMap": false, "out": true, "outExt": ".css", }, "git

nginx 日志之 access_log分割

醉酒当歌 提交于 2020-04-28 12:47:11
如果任由访问日志写下去,日志文件会变得越来越大,甚至是写满磁盘。 所以,我们需要想办法把日志做切割,比如每天生成一个新的日志,旧的日志按规定时间删除即可。 实现日志切割可以通过写shell脚本或者系统的日志切割机制实现。 shell脚本切割Nginx日志 切割脚本内容: # !/bin/ bash logdir =/var/log/nginx # 定义日志路径 prefix=` date -d " -1 day " +%y%m%d` # 定义切割后的日志前缀 cd $logdir for f in ` ls access .log` do mv $f $f-$prefix # 把日志改名 done /bin/ kill -USR1 $( cat /usr/local/nginx/logs/nginx.pid 2 >/dev/ null ) 2 >/dev/ null # 生成新的日志 bzip2 *$prefix # 压缩日志 find . -type f -mtime + 180 | xargs /bin/ rm -f # 删除超过180天的老日志 示例: # !/bin/ bash logdir =/usr/local/nginx/logs/ prefix =` date -d " -1 day " +%y%m% d` cd $logdir for f in ` ls

nginx日志切割(logrotate或shell脚本)

大憨熊 提交于 2020-04-28 12:21:30
nginx自己不会对日志文件进行切割,可以通过两种不同的方式进行,分别是:通过logrotate和通过shell脚本。 如果是yum方式安装的nginx,系统默认会自动通过logrotate这个日志管理软件,按天进行分割(配置如下,具体含义可看下文)。 [root@flume- 2 ~]# cat /etc/logrotate.d/ nginx /var/log/nginx /* log { create 0644 nginx nginx daily rotate 10 missingok notifempty compress sharedscripts postrotate /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true endscript } 下面分别对这两种方法进行介绍下: 一、使用logrotate切割 前面说了yum或者apt-get方式安装的nginx会自动使用logrotate这个日志管理软件进行切割,所以本章节我们主要介绍有关logrotate相关的知识点。 1.1 logrotate 介绍 logrotate是什么呢?它是一个linux系统日志的管理工具。它可以切割、压缩等其他软件的日志文件软件。 logrotate是基于crontab运行的

Oracle GoldenGate 详解

情到浓时终转凉″ 提交于 2020-04-27 20:28:07
一、Oracle GoldenGate介绍   GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。 1、应用场景 1)高可用容灾 2)数据库迁移、升级(支持跨版本、异构数据库、零宕机时间、亚秒级恢复) 3)实时数据集成(支持异构数据库、多源数据库) 2、常用拓扑 (下图来自网络) 3、支持的平台和数据库 我这边几年前做过oracle到mysql的同步,也作过mysql到mysql的同步(支持不是很好,而且有DDL和DML的限制、字段类型限制等) (下图来自网络) 4、OGG同步原理 源端通过抽取进程提取redo log或archive log日志内容,通过pump进程(TCP/IP协议)发送到目标端,最后目标端的rep进程接收日志、解析并应用到目标端,进而完成数据同步。 5、OGG相关进程 GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程 1)Manager进程 不管是源端还是目标端必须并且只能有一个Manager进程,可以启动、关闭、监控其他进程的健康状态,报告错误事件、分配数据存储空间,发布阀值报告等。 2)Extract 进程 运行在数据库源端,负责从源端数据表或日志中捕获数据

Hadoop压缩和解压缩文件

会有一股神秘感。 提交于 2020-04-26 22:20:02
Hadoop压缩和解压缩文件 修改 Hadoop_WordCount单词统计 工程 创建CompressionTest类 package com . blu . compress ; import java . io . File ; import java . io . FileInputStream ; import java . io . FileOutputStream ; import org . apache . hadoop . conf . Configuration ; import org . apache . hadoop . fs . Path ; import org . apache . hadoop . io . IOUtils ; import org . apache . hadoop . io . compress . CompressionCodec ; import org . apache . hadoop . io . compress . CompressionCodecFactory ; import org . apache . hadoop . io . compress . CompressionInputStream ; import org . apache . hadoop . io . compress .

Redis之quicklist源码分析

懵懂的女人 提交于 2020-04-20 17:18:56
Redis之quicklist源码分析 一、quicklist简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 其底层实现所依赖的内部数据结构就是quicklist,主要特点有: list是一个双向链表。 在list的两端追加和删除数据极为方便,时间复杂度为O(1)。 list也支持在任意中间位置的存取操作,时间复杂度为O(N)。 在看源码之前(版本3.2.2),我们先看一下quicklist中的几个主要数据结构: 一个quicklist由多个quicklistNode组成,每个quicklistNode指向一个ziplist,一个ziplist包含多个entry元素,每个entry元素就是一个list的元素,示意图如下: 图1:quicklist 二、quicklist数据结构源码 下面分别看下quicklist、quicklistNode的源码(代码文件是Quicklist.h,ziplist后面文章再分析): quicklist: /* quicklist结构占用32个字节(64位系统),其中字段: head:指向第一个quicklistNode。 tail:指向最后一个quicklistNode。 count

Redis源码阅读笔记-快速列表

随声附和 提交于 2020-04-20 08:48:28
快速列表 快速列表(quicklist)是由压缩列表(ziplist)组成的一个双向链表,链表中,每一个节点都是以压缩列表(ziplist)的结构保存。 在 Redis3.2 后加入的新数据结构,在列表键中取代了双向链表的作用。 特点 双向链表(list)在插入节点删除节点上效率高,但是每个节点不连续,容易产生内存碎片。 压缩列表(ziplist)是一段连续的内存,但不利于修改,插入删除麻烦,复杂度高,频繁申请释放内存。 快速列表综合了双向列表和压缩列表的优点,既有链表头尾插入相对便捷,又有连续内存存储的优点。 代码结构 快速列表结构 /* quicklist is a 40 byte struct (on 64-bit systems) describing a quicklist. * 'count' is the number of total entries. * 'len' is the number of quicklist nodes. * 'compress' is: -1 if compression disabled, otherwise it's the number * of quicklistNodes to leave uncompressed at ends of quicklist. * 'fill' is the user-requested