摘要:由来 环境:PHP7、Swoole、linux 对聊天室有点感兴趣,对于网络协议有一点一知半解,所以决定借助swoole实现个简单的聊天室,来简单剖析下原理,知道原理以后就可以考虑用其他语言或者自己造轮子写个,当然这是后话。 源码我放置github( https://github.com/Walki 阅读全文
posted @ 2019-02-10 21:02 walkingSun 阅读(113) 评论(0) 推荐(0) 编辑
摘要:场景 web服务器有多台,每台服务器都会存贮自己的session,session无法在多台服务器共享。所以就需要更换session的存贮空间,存贮在一个共用的空间。通常为了读写速度,我们会选择存贮在内存服务上,如redis、mysql的memory存贮引擎等,本文以reddis存贮贯串上下文。 se 阅读全文
posted @ 2018-09-12 11:29 walkingSun 阅读(454) 评论(0) 推荐(0) 编辑
摘要:服务器安装LNMP(centos6.6+nginx1.7.12+mysql5.6.24+php5.6.7) 本次安装 centos6.6+nginx1.7.12+mysql5.6.24+php5.6.31(虚拟机方式安装,跳过第一步) libmcrypt https://nchc.dl.source 阅读全文
posted @ 2017-08-28 13:54 walkingSun 阅读(320) 评论(0) 推荐(0) 编辑
摘要:微信授权登录(PHP) 微信授权 OAuth2.0授权 微信网页授权 主要是在项目中遇到网页授权登录这个需求,就对此做些总结记录。 OAuth2.0授权 OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的个人信息,而无需将用户名和密码提供给第 阅读全文
posted @ 2017-06-15 19:37 walkingSun 阅读(1163) 评论(0) 推荐(0) 编辑
摘要:SFTP应用(二) SFTP Server SSH2 sftp操作 FTP进行文件传输需要通过端口进行。一般所需端口为: 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。 数据链路 TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、 阅读全文
posted @ 2017-06-06 22:35 walkingSun 阅读(522) 评论(0) 推荐(0) 编辑
摘要:PHP导出Excel php phpExcel 导出excel 这些天在使用PHPExcel导出数据时,5000条数据竟然挂了。后来跟同事聊聊,有些明悟,PHPExcel做了很多处理,我在这里理解为渲染,就会暂用过多的空间,‘膨胀’的空间导致内存暂用过大,就挂了。其实只要我们只是简单的导出操作,没有 阅读全文
posted @ 2016-12-07 22:57 walkingSun 阅读(32586) 评论(8) 推荐(3) 编辑
摘要:[TOC] # Volumes容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。 首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失——因为容器会以干净的状态重建。 其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。参考[官方](https://kuber... 阅读全文
posted @ 2020-07-01 01:25 walkingSun 阅读(12) 评论(0) 推荐(0) 编辑
摘要:[TOC] # kebectl 部署常用操作## 起deployment、service、cronJob、ingresskubectl apply -f web-click.yaml## deletekubectl delete -f web-click.yaml## 获取deploymentkubectl get deployment --namespace=bigdata## podkubec... 阅读全文
posted @ 2020-06-28 22:25 walkingSun 阅读(10) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 有效的括号```给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输入: "([... 阅读全文
posted @ 2020-06-27 18:55 walkingSun 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[TOC] # ConfigMapConfigMap 是 configMap 是一种 API 对象,用来将非机密性的数据保存到健值对中。使用时可以用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 将您的环境配置信息和 容器镜像 解耦,便于应用配置的修改。当您需要储存机密信息时可以使用 Secret 对象。具体用法查看[官网](https://kubernetes.io/zh/do... 阅读全文
posted @ 2020-06-14 21:45 walkingSun 阅读(117) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 简介nginx是开发中常用的web server,又可以做反向代理,另外k8s中的ingress默认使用的也是nginx,所以有必要深入了解下nginx的相关知识,及一些必要的原理知识。# 常用指令## location```location [=|~|~*|^~|@] pattern { ... }```- =代表路径完全匹配- ~区分大小写的正则匹配```server { ... 阅读全文
posted @ 2020-05-24 23:05 walkingSun 阅读(43) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 数组查找元素go中没有类似其他语言p中in_array() 方法## 遍历```gopackage mainimport "fmt"// Contains 数组是否包含某元素func Contains(slice []string, s string) int { for index, value := range slice { if value == s { return... 阅读全文
posted @ 2020-05-04 02:35 walkingSun 阅读(66) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 简介目前正在学Go,做下记录,温故而知新,初学coding的时候可以快速翻查用法,了解原理。# 多重赋值多重赋值时,变量的左值和右值按从左到右的顺序赋值```govar a int = 100b := 200b,a = a,b // 实现交换```# 匿名变量匿名变量 '_'表示,使用匿名变量时,只需要在变量声明的地方使用下划线替换即可。```goa,_ = Get_d... 阅读全文
posted @ 2020-04-19 21:02 walkingSun 阅读(107) 评论(1) 推荐(0) 编辑
摘要:[TOC] # 并发并发指在同一时间内可以执行多个任务。并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等。本章讲解的并发含义属于多线程编程。goroutine是由Go语言的运行时调度完成,而线程是由操作系统调度完成。使用者分配足够多的任务,系统能自动帮助使用者把任务分配到CPU上,让这些任务尽量并发运作。这种机制在Go语言中被称为goroutine。Go程序从main包的main()... 阅读全文
posted @ 2020-04-19 20:58 walkingSun 阅读(51) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 包(package)Go语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录(GOPATH)。Go的入口main()函数所在的包叫main包。## 工作目录(GOPATH)GOPATH是Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录。### 工程结构GOPATH指定的工作目录下,代码总是会保存在$GOPATH/src目录下。在工程经过gobuild、go... 阅读全文
posted @ 2020-04-18 21:15 walkingSun 阅读(129) 评论(0) 推荐(0) 编辑
摘要:[TOC] ## 接口(interface)Go中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象具有的特性,对外通过接口暴露能使用的特性。Go的接口设计是非侵入式的,接口实现者不需要关系接口会被怎样使用,调用者也不需要关心接口的实现细节。接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式、类型及结构。非侵入式设计是Go语言设计师经过多年的大项目经验总结出来的设计之道。只有让接口... 阅读全文
posted @ 2020-03-30 22:35 walkingSun 阅读(620) 评论(0) 推荐(0) 编辑
摘要:[TOC] # replace into 用法(insert into 的增强版)跟insert into功能类似replace into 首先尝试插入数据到表中,1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。2. 否则,直接插入新数据。要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表... 阅读全文
posted @ 2020-03-16 23:15 walkingSun 阅读(25) 评论(0) 推荐(0) 编辑
摘要:[TOC] 学习研究,使用minikube模拟。做下记录,方便回顾,加深理解。 通过Kubernetes的命令行工具kubectl远程管理集群 # 术语 ## Cluster Cluster是计算、存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用 ## Master Master是Cluster的大脑,它的主要职责是调度,即决定将应用放在哪里运行。Master... 阅读全文
posted @ 2020-03-15 18:05 walkingSun 阅读(30) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 数据结构string、hash、list、set、zset、bitmap、HyperLogLog、Bloom Filter(布隆过滤器)、stream常用的前5种类型不做细究,来看看后面一个的结构及用法。## bitmap在我们平时开发过程中,会有一些 bool 型数据需要存取,比如用户一年的签到记录,签了是 1,没签是 0,要记录 365 天。如果使用普通的 key/value,... 阅读全文
posted @ 2020-03-09 21:05 walkingSun 阅读(113) 评论(0) 推荐(1) 编辑
摘要:[TOC] # http请求后需关闭句柄大量请求没有关闭,会造成go的内存泄露。这也是平时编码习惯没有养成,需谨记。务必请求后释放资源:```goresponse.Body.Close()```# 解析请求参数中带”;“,解析出错```gohttp://tj-adc.wtzw.com/click?source=wolong12;123344&project=reader_free&callback... 阅读全文
posted @ 2020-03-01 15:05 walkingSun 阅读(28) 评论(1) 推荐(0) 编辑
摘要:[TOC] # structGo使用结构体和结构体成员来描述真实世界的实体和实例对应的各种属性。Go中的类型可以被实例化,使用new或&构造的类型实例的类型是类型的指针。结构体成员由一系列的成员变量构成,这些成员变量也被称为"字段"。- 字段拥有自己的类型和值;- 字段名必须唯一;- 字段的类型也可以是结构体,甚至是字段所在结构体的类型Go的结构体与"类"都是符合结构体,但Go中结构体的内嵌配合接... 阅读全文
posted @ 2020-02-24 21:29 walkingSun 阅读(77) 评论(0) 推荐(0) 编辑
摘要:[TOC] # mapmap使用散列表(hash)实现### 添加关联到map并访问关联和数据map[Key_Type]Value_Type```goscene := make(map[string]int)scene["route"] = 66fmt.Println(scene["route"])v :=scene["route2"] //尝试查找一个不存在的键,返回的将是value_ty... 阅读全文
posted @ 2020-02-24 00:35 walkingSun 阅读(120) 评论(0) 推荐(0) 编辑
摘要:[TOC] # xorm xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 电子书 [XORM操作指南](https://www.kancloud.cn/kancloud/xorm-manual-zh-cn/56013) # 常用命令 xorm 是一组数据库操作命令的工具,包含如下命令: ``` reverse 反转一个数据库结构,生成代码 shell 通用的... 阅读全文
posted @ 2020-02-23 15:09 walkingSun 阅读(94) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 切片## 声明切片var name []T- T 代表切片类型对应的元素类型切片默认指向一段连续内存区域,可以是数组,也可以是数组本身从连续区域生成切片是常规的操作,格式:```goslice [开始位置:结束位置]``````govar a = [3]int{1,2,3}b := a[1,2]```从数据或切片生成的新的切片具有以下特性:- 取出的元素数量为:结束位置-起始位置;... 阅读全文
posted @ 2020-02-23 15:05 walkingSun 阅读(43) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 函数## 声明函数```gofunc 函数名(参数列表)(返回参数){ 函数体 }``` ### 参数类型简写```gofunc add(a ,b int) int{ return a + b} ```### 函数返回值Go支持多返回值```goconn, err := connect To Network()```### 带有变量名的返回值```gofunc n... 阅读全文
posted @ 2020-02-23 00:55 walkingSun 阅读(58) 评论(0) 推荐(0) 编辑
摘要:[TOC] # 指定容器启动时运行的命令## CMD为容器提供默认的执行命令CMD 指令有三种使用方式,其中的一种是为 ENTRYPOINT 提供默认的参数:CMD ["param1","param2"]另外两种使用方式分别是 exec 模式和 shell 模式:- CMD ["executable","param1","param2"] // 这是 exec 模式的写法,注意需要使用双引号... 阅读全文
posted @ 2020-02-16 21:55 walkingSun 阅读(29) 评论(0) 推荐(0) 编辑
**/