摘要:
一、下载指定系统扩展 由于我的系统是64位win10,php版本是7.1,所以选择7.1 Thread Safe (TS) x64,linux用户可以自行下载源码包,编译安装。 解压php_ui-2.0.0-7.1-ts-vc14-x64.zip,把php_ui.dll复制到你php.ini中ext 阅读全文
摘要:
1、通过写shell脚本,死循环,守护进程运行 2、通过crontab,变通的实现每隔多少秒运行一次 上述方法表示每10秒执行一次echo把"hello world"写入/tmp/2.log文件。 不过这种方案还是有缺点,如果需要每秒运行,那就必须添加60条定时记录,比较麻烦,建议还是用第一种。 阅读全文
摘要:
一、什么是rsync?rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。 rsync官网 二、rsync的工作方式 1、单个主机本地之间的数据传输 同步文件hosts到/data/tmp 同步删除tmp目录中的文件 2、借助rcp,ssh等通道来传输数据 阅读全文
摘要:
一、端口映射实现访问容器 1、我们先从pull一个nginx镜像,然后后台运行该镜像 使用-P标记,docker会随机映射一个端口至容器内部开放的网络端口。 然后在本地主机上通过32773端口就可访问容器内的服务 如果出现如下问题: 修改/etc/sysctl.conf,添加如下代码: 然后重启ne 阅读全文
摘要:
docker容器中管理数据两种方式:1、数据卷(Data Volumes)2、数据卷容器(Data Volume Dontainers) 一、数据卷特性:1、数据卷可以在容器之间共享和重用2、对数据卷的修改会立马生效3、对数据卷的更新,不会影响镜像4、数据卷一直存在,直到没有容器使用 -v标记在容器 阅读全文
摘要:
docker仓库是集中存放镜像的地方,注册服务器是存放仓库的具体服务器,每个服务器上可以有多个仓库,每个仓库下面有多个镜像。 一、查找仓库中镜像 二、下载镜像 三、国内镜像服务 四、创建私有仓库 自动下载并启动一个registry容器,创建本地的私有仓库服务默认会将仓库创建在容器的/tmp/regi 阅读全文
摘要:
docker容器是镜像运行的一个运行实例,带有额外的可写文件层。 一、创建容器 create命令新建的容器处于停止状态,可以使用docker start命令启动。 二、创建并启动容器 -t 表示分配一个伪终端并绑定到容器的标准输入上 -i 表示让容器的标准输入保持打开 三、守护态运行容器 查看容器的 阅读全文
摘要:
一、安装docker的文档地址: 二、安装docker 1、通过yum进行安装 2、通过rpm包进行安装 选择合适自已系统的rpm包进行安装 3、通过脚本进行安装 三、启动docker 四、docker镜像 1、获取镜像 如果不显示指定tag,默认会选择latest标签 当然也可以指定服务器进行下载 阅读全文
摘要:
在slave服务器上通过如下命令 显示如下情况: 表示slave不同步 解决方法一(忽略错误,继续同步): 1、先停掉slave 2、跳过错误步数,后面步数可变 3、再启动slave 4、查看同步状态 解决方法二(重新做主从,完全同步): 1、先进入主库进行锁表,注意窗口不要关闭 2、把数据进行备份 阅读全文
摘要:
mysql5.1.6增加了一个事件调度器(Event Scheduler),可以做定时任务(定时删除记录,定时数据统计),取代之前系统的计划任务。mysql事件调度器可以精确到每秒执行一个任务。 事件调度器与触发器的区别:事件调度器是基于特定时间周期来触发执行某些任务,触发器是基于某个表产生的事件来 阅读全文
摘要:
php中进程的阻塞,主要是父进程等待子进程退出。 1.php代码如下: 上面代码结果如下: 如果我们把pcntl_wait拿到for循环外,会是个什么结果? 2.php代码如下: 上面代码结果如下: pcntl_wait的第二个参数可以用来设置主进程不等待子进程退出,继续执行后续代码。 3.php代 阅读全文
摘要:
replace into和insert into on duplicate key update都是为了解决我们平时的一个问题 就是如果数据库中存在了该条记录,就更新记录中的数据,没有,则添加记录。 我们创建一个测试表test 向该表中插入一些数据 影响行数4,结果如下: 我们运行如下语句: 结果显 阅读全文
摘要:
一、下载我们需要的包 二、使用fsnotify监控文件 测试结果如下: 我们在tmp目录下的操作都被捕捉到了,但是fsnotify有一个问题,它无法递归的帮我们捕捉子目录、孙子目录的操作事件,这需要我们自已来实现。 还有一个问题就是当们修改文件夹名称时,fsnotify中event.Name仍然是原 阅读全文
摘要:
实现延迟消息具体思路我是看的下面这篇文章 实现延迟消息最主要的两个结构: 环形队列:通过golang中的数组实现,分成3600个slot。 任务集合:通过map[key]*Task,每个slot一个map,map的值就是我们要执行的任务。 原理图如下: 实现代码如下: 测试结果如下: 阅读全文
摘要:
一、连接池的描述图片如下: 二、连接池代码如下: 三、8080服务端代码如下: 测试结果如下: 阅读全文
摘要:
package main; import ( "sync" "errors" "fmt" ) //代码参考《Go语言实战》中第7章并发模式Pool //如果哪个类型实现了Resource接口中的两个方法,我们就认为该类型是资源 type Resource interface { Close(); IsClosed() bool; } //工厂方法,用于创建新资源 type Fa... 阅读全文
摘要:
package main; import ( "sync" "fmt" "net" "runtime" ) //sync.Pool是一个可以存或取的临时对象集合 //sync.Pool可以安全被多个线程同时使用,保证线程安全 //注意、注意、注意,sync.Pool中保存的任何项都可能随时不做通知的 阅读全文
摘要:
bytes中常用函数的使用: bytes中Reader和Buffer的使用: 阅读全文
摘要:
package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级内存操作 //类型共有六种:int32, int64, uint32, uint64, uintptr, unsafe.Pinter //操作共五种:增减, 比较并交换, 载入, 存储,交换 func main() { //增减操作 var... 阅读全文
摘要:
一、功能描述: 客户端通过访问外网服务器上指定端口,间接访问自已本地的内网服务。 二、原理图如下: 三、实现代码如下: server.go代码: client.go代码: 四、测试 1、先把server.go上传到外网服务器上,安装GO环境,并编译,然后运行server 2、在本地编译client. 阅读全文