好用的Linux命令
ripgrep 是一个面向行的搜索工具
英文原版 https://github.com/BurntSushi/ripgrep
中文fork版 https://github.com/chinanf-boy/ripgrep-zh
英文原版 https://github.com/BurntSushi/ripgrep
中文fork版 https://github.com/chinanf-boy/ripgrep-zh
测试地址:https://echarts.apache.org/examples/zh/editor.html?c=pie-simplevar data = [
{
name: "博士及以上",
value: 0.2,
},
{
name: "硕士及以上",
value: 0.3,
},
{
name: "本科及以上",
value: 1,
},
{
name: "高中",
value: 0.1,
},
{
name: "初中及以下",
value: 0.1,
},
{
name: "其他",
value: 0.8,
},
];
var dataStyle = {
normal: {
label: { show: false },
labelLine: { show: false },
shadowBlur: 40,
shadowColor: "rgba(40, 40, 40, 0.5)",
},
};
var placeHolderStyle = {
normal: {
color: "rgba(0,0,0,0)",
label: { show: false },
labelLine: { show: false },
},
emphasis: {
color: "rgba(0,0,0,0)",
},
};
var legendData = [];
function getData(data) {
var sortData = data.sort((a, b) => {
return b.value - a.value;
});
var res = [];
for (let i = 0; i < sortData.length; i++) {
legendData.push(sortData[i].name);
res.push({
type: "pie",
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
radius: [200 - i * 20, 220 - i * 20], //radius: [65 - i * 15 + '%', 57 - i * 15 + '%'],
itemStyle: dataStyle,
data: [
{
value: sortData[i].value,
name: sortData[i].name,
},
{
value: 1 - sortData[i].value,
name: "invisible",
itemStyle: placeHolderStyle,
},
],
});
}
return res;
}
option = {
backgroundColor: "#f4f2e3",
color: ["#85b6b2", "#6d4f8d", "#cd5e7e", "#e38980", "#f7db88"],
tooltip: {
show: true,
formatter: "{b} : {c} ({d}%)",
},
legend: {
data: legendData,
type: "scroll",
orient: "vertical",
align: "left", // 图例标记对其方式
y: "center", //延Y轴居中
x: "right", //居右显示
padding: 10, //调节legend的位置
formatter: function (name) {
let total = 0;
let target;
for (let i = 0, l = data.length; i < l; i++) {
total += data[i].value;
if (data[i].name == name) {
target = data[i].value;
}
}
return name + " " + ((target / total) * 100).toFixed(0) + "%";
},
},
toolbox: {
show: true,
feature: {
saveAsImage: { show: true },
},
},
series: getData(data),
};
接上一篇 Docker 实战之 MySQL 主从复制, 这里是 Docker 实战系列的第二篇,主要进行 Redis-Cluster 集群环境的快速搭建。Redis 作为基于键值对的 NoSQL 数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时 Redis 本身非常稳定,已经得到业界的广泛认可和使用。
在 Redis 中,集群的解决方案有三种
Redis Cluster 是 Redis 的分布式解决方案,在 3.0 版本正式推出。
fetch("//xxx.xxx.com/10.pdf", { |
$http({ |
缺点:需要同域、可能会被拦截、浏览器支持预览的文件不会直接下载window.open("//xxx.xxx.com/10.pdf");
缺点:浏览器支持预览的文件不会直接下载export function download(url, params = {}) {
const form = document.createElement("form");
form.method = "post";
form.action = url;
form.target = "_blank";
document.body.appendChild(form);
for (const key in params) {
const value = params[key];
if (value) {
const input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", key);
if (isArray(value)) {
input.setAttribute("value", stringify(value));
} else {
input.setAttribute("value", value);
}
form.appendChild(input);
}
}
form.submit();
document.body.removeChild(form);
}
缺点:可能会被拦截、浏览器支持预览的文件不会直接下载const link = document.createElement("a");
link.style.display = "none";
link.href = "//xxx.xxx.com/10.pdf";
link.setAttribute("download", decodeURI("10.pdf"));
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
1 和 2 的方式,无论什么文件都是执行下载
两者都是基于同一个代码包数据库去拉取数据的。
最开始,yarn
是为了弥补 npm
的一些缺陷而出现的,到目前为止,两者的区别越来越小,主要是时间和使用体验上的一些不同了。
1、速度快
npm
第一次安装的对比 54.885s
yarn
第一次安装的对比 64.87s
npm
再次安装时间对比 34.961s
yarn
再次安装时间对比 19.824s
npm
删除包花费的时间对比 43.843s
yarn
删除包花费的时间对比 21.99s
2、npm
安装在国内基本都要设置镜像,而有些 npm
包需要额外的配置才能拉取下来
3、命令使用上,定义在 scripts 里面的命令,npm
需要加上 run,yarn
不需要