使用 XSHELL 对远程主机进行上传和下载

在使用远程服务器的时候经常要进行文件的上传和下载,通常情况下可以使用诸如 SCP 、 XFTP 或者其他类似的软件来完成,这些工具确实也是十分方便。 但是有时候还是有一些地方不太满足,例如 XSHELL 和 SCP 两者数据不共通,使用 XSHELL 登录过的服务器帐号信息在使用 SCP 工具后还要重新设置一遍,有时候懒起 ... 阅读更多

HTTP 协议 (一):概述

一、概述 超文本传输协议 (Hypertext Transfer Protocol, HTTP) 是当今网络的重要角色之一,也是万维网 (World Wide Web, WWW) 的核心组成。它的特点为: 无连接:HTTP 是一个无连接的协议,虽然基于 TCP,但是每次进行数据交互之前,无需先建立 HTTP 连接。 ... 阅读更多

SQL UNION 和 UNION ALL 用法

一、概述 union 和 union all 都用于合并多个查询的结果,用法为:

两者的区别是 union all 中会有重复记录,而 union 中没有。 二、示例 创建两张表 ch ... 阅读更多

Git 学习笔记 (三):使用 add 和 commit 完成第一次提交

一、 Git 提交代码的流程 git 中一个完整的代码提交流程为: 在工作区写好要提交的代码文件,然后使用 git add 命令把文件到寄存区,确认代码后使用 git commit 提交到版本库。 二、提交代码到寄存区 git add 用于把工作区的文件提交到寄存区中,后面跟上需要提交的文件,例如 git add a ... 阅读更多

C++中引用的基本用法

一、基本用法 创建一个对象的引用只需把声明符写成&val 的形式即可:

创建引用时,编译器并不是把拷贝一个值赋给引用,而是把引用和初始的对象绑定在一起,相当于只是给对象起了一个别名。可以通过引用来操作初始化对象,并且通过引用来操 ... 阅读更多

Golang 判断文件是否存在及递归创建文件夹

一、判断文件或文件夹是否存在 golang 判断文件或者文件夹是否存在可以通过 os.stat() 方法和 os.IsExist() 方法来判断:

二、递归创建文件夹 递归文件夹用到 os.MkdirAll() 方法: [crayon-694772 ... 阅读更多

redis 中的发布和订阅

一、发布和订阅

除了任务队列以外,redis 还有一种基于 「发布/订阅」 模式的消息传递,使得客户端可以订阅某个频道,当频道有消息产生时,会把消息传递到所有的订阅者。和列表不一样的是,发布和订阅可以是一对多的关系,即同一个消息可以同时传递到多个客户端 (订阅者) 。而列表只能允许一个客户端接收一个消息。

订阅和退订的命令是 PUBLISH/SUBSCRIBEPUBLISH 是向频道发送消息,SUBSCRIBE 是订阅频道。

1.1 发布

往指定频道发布消息的操作:

消息发送成功后,将会返回一个整数,表示收到这条消息的订阅者数量,如果没有任何客户端订阅频道,返回 0 。

一个要注意的问题是消息发布后不会被持久化,如果当前没有订阅者订阅频道,后续再订阅也不会收到订阅前的消息。

阅读更多