准备工作

  1. 一个域名,只要能够正常解析就行
  2. xshell或其他ssh软件
  3. 一台云服务器,流量尽可能多,带宽能够尽量跑满自己家庭宽带的上行即可
  4. 基础linux知识

查看frp目前的版本:https://github.com/fatedier/frp/releases, 本教程以0.33版本作为例子

服务端

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -zxvf  frp_0.33.0_linux_amd64.tar.gz
cd  frp_0.33.0_linux_amd64
vi frps.ini

- 阅读剩余部分 -

阅读全文 »

泛型是 TypeScript(以下简称 TS) 比较高级的功能之一,理解起来也比较困难。泛型应用场景非常广泛,很多地方都能看到它的影子。平时我们阅读开源TS 项目源码,或者在自己的 TS 项目中使用一些第三方库(比如React)的时候,经常会看到各种泛型定义。如果你不是特别了解泛型,那么你很可能不仅不会用,不会实现,甚至看不懂这是在干什么。

相信大家都经历过,看到过,或者正在写「一些应用,这些应用充斥着各种重复类型定义, any 类型层出不穷,鼠标移到变量上面的提示只有any,不要说类型操作了,类型能写对都是个问题」 。我也经历过这样的阶段,那个时候我对 TS 还比较陌生。

随着在 TS 方面学习的深入,越来越认识到 「真正的 TS 高手都是在玩类型」 ,对类型进行各种运算生成新的类型。这也好理解,毕竟 「TS提供的其实就是类型系统」 。你去看那些 TS 高手的代码,会各种「花式使用泛型」 。 可以说泛型是一道坎,只有真正掌握它,你才知道「原来TS 还可以这么玩」 。怪不得面试的时候大家都愿意问泛型,尽管面试官很可能也不怎么懂。

「只有理解事物的内在逻辑,才算真正掌握了,不然永远只是皮毛,不得其法」 。本文就带你走进泛型,带你从另一个角度看看究竟什么是泛型,为什么要有它,它给 TS 带来了什么样的不同。

- 阅读剩余部分 -

阅读全文 »

基本概念

lftp是一个功能强大的命令行文件传输工具,支持多种协议,如 FTP、SFTP、HTTP 等。mirror命令是lftp中用于目录同步的一个重要命令。它可以递归地下载或上传整个目录结构,并且能够根据源目录和目标目录之间的差异,智能地增量更新文件。

命令语法

mirror 命令的基本语法形如:

mirror [options] [source] [destination]

source:指定要同步的源目录。例如,如果是从 FTP 服务器下载,这就是服务器上的目录路径;如果是上传,这就是本地要上传的目录路径。
destination:指定同步的目标目录。对于下载操作,这是本地文件系统的目录路径;对于上传操作,这是远程服务器上的目录路径。
options:有许多选项可以控制mirror命令的行为。例如:
-R:用于反转操作方向,通常用于上传。默认情况下,mirror是用于下载的,使用-R后,就会将本地目录上传到远程服务器,将源目录作为本地目录,目标目录作为远程目录。
-c:这个选项用于继续被中断的传输。如果在同步过程中由于网络问题或其他原因导致传输中断,使用-c选项可以从中断的地方继续进行传输,而不是重新开始整个同步过程。
-n:这个选项用于进行模拟运行。当使用-n时,mirror命令不会实际传输文件,而是会显示将要进行的操作,包括哪些文件将被下载或上传、目录结构如何创建等信息,这对于在执行实际同步操作之前检查命令的正确性非常有用。
--delete:这个选项用于删除目标目录中在源目录中不存在的文件和目录。例如,在同步两个目录时,如果源目录中的某个文件被删除了,使用--delete选项可以确保目标目录中的相应文件也被删除,从而保持两个目录的严格同步。

- 阅读剩余部分 -

阅读全文 »

是否开启了慢查询记录

选择某一数据库,执行db.getProfilingStatus(),可得到如下结果:

was=1表示开启了慢查询记录,0表示未开启
showms表示记录超过多少ms的数据库操作

开启记录慢查询

只开启某一个数据库,选中某一数据库后,shell里执行db.setProfilingLevel(1,200),其中,参数1表示记录的级别,参数2表示记录大于多少ms的操作

0:关闭,不收集任何数据。
1:收集慢查询数据,默认是100毫秒。
2:收集所有数据

默认情况下,开启的profile表只有1M储存空间,可通过下面命令调整到100M

- 阅读剩余部分 -

阅读全文 »