摘要:
assert_options函数 设置断言的参数 assert 函数 ,检测一个断言
阅读全文
posted @ 2019-03-14 17:34
唯一客服系统开发笔记
阅读(1031)
推荐(0)
摘要:
CA证书,用来在调用HTTPS资源的时候,验证对方网站是否是CA颁布的证书,而不是自己随便生成的 curl命令1.需要下载CA证书 文件地址是 http://curl.haxx.se/ca/cacert.pem2.把下载的文件放到这个位置 /etc/pki/tls/certs/ca-bundle.c
阅读全文
posted @ 2019-03-13 18:09
唯一客服系统开发笔记
阅读(4148)
推荐(0)
摘要:
go-redis的使用1.下载代码到GOPATH环境变量指定的目录比如我的是进入目录D:\golang\code\src\github.com\go-redis , 执行git clone https://github.com/go-redis/redis.git 2.redis设置过期时间的命令是
阅读全文
posted @ 2019-03-12 19:59
唯一客服系统开发笔记
阅读(4025)
推荐(1)
摘要:
1. 查看表中的所有索引 show index from modify_passwd_log; 有两个 一个是id的主键索引 , 一个是email_id的普通索引 2. using index表示 使用到了索引 , 并且所取的数据完全在索引中就能拿到 explain select email_id
阅读全文
posted @ 2019-03-09 16:17
唯一客服系统开发笔记
阅读(2180)
推荐(0)
摘要:
1.awk每次读一行数据,如果设置了-F选项,是在这一行使用分隔符分,$0是全部 2.awk由模式和动作组成 3.条件判断模式{动作} 4./正则模式/{动作} 可以有多个模式动作 5.条件操作符,~匹配正则 !~不匹配 6.特殊的模式(BEGIN,END) , 都只执行一次 , 不像前面的模式 ,
阅读全文
posted @ 2019-03-09 12:01
唯一客服系统开发笔记
阅读(262)
推荐(0)
摘要:
uniq -d是只打印重复行 -u是只打印独一无二的行文件A : abcd文件B: cdef取并集:A + B sort A B|uniq 取交集: sort A B|uniq -d 取差集:A - B sort A B B|uniq -u 取差集:B - A sort A B A|uniq -u
阅读全文
posted @ 2019-03-07 11:26
唯一客服系统开发笔记
阅读(659)
推荐(0)
摘要:
1.如果子进程先于父进程退出, 同时父进程又没有调用wait/waitpid,则该子进程将成为僵尸进程 2.如果fork完就不管了可以使用 忽略子进程信号, 防止僵尸进程 pcntl_signal(SIGCLD, SIG_IGN); 3.如果在主进程中,可以等待子进程的退出 , 这样也能防止出现僵尸
阅读全文
posted @ 2019-03-04 20:42
唯一客服系统开发笔记
阅读(733)
推荐(0)
摘要:
1.对一个大文件比如我的文件为 -rw-r--r-- 1 ubuntu ubuntu 9.1G Mar 1 17:53 2018-12-awk-uniq.txt 2.使用split命令切割成10个小文件 split -b 1000m 2018-12-awk-uniq.txt -b 按照字节切割 ,
阅读全文
posted @ 2019-03-02 16:06
唯一客服系统开发笔记
阅读(431)
推荐(0)
摘要:
rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。 Linux守护进程的运行方式:1.独立运行(stand-alone)的守护进程,独立运行的守护进程由init脚本负责管理2.xinetd模式运行独立的守护进程
阅读全文
posted @ 2019-03-02 14:31
唯一客服系统开发笔记
阅读(519)
推荐(0)
摘要:
1.yield是函数内外,循环内外沟通用的 , 当你的函数需要返回一个大数组 , 循环的时候需要遍历这个大数组时 , 并且需要多次遍历这个函数的返回值 , 这个是有用的 2.当我也是只需要在一次循环中就可以处理完所有的事情时 , 这个就没啥用 在函数内循环的时候 , 会暂停住 , 回到我的外层循环里
阅读全文
posted @ 2019-03-01 19:56
唯一客服系统开发笔记
阅读(368)
推荐(0)
摘要:
上传本地文件到服务器scp 本地路径 用户名@远程服务器ip:远程路径 下载文件 scp 用户名@远程服务器ip:远程路径 本地路径-r 是上传下载本地目录到远程 远程文件
阅读全文
posted @ 2019-03-01 17:12
唯一客服系统开发笔记
阅读(318)
推荐(0)
摘要:
1. 把数据库表导出到文本文件中 mysql -h主机 -P端口 -u用户 -p密码 -A 数据库 -e "select email,domain,time from ent_login_01_000" > ent_login_01_000.txt 总共要统计最近3个月的登陆用户 , 按月份分表,并
阅读全文
posted @ 2019-02-28 20:00
唯一客服系统开发笔记
阅读(854)
推荐(0)
摘要:
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "log" ) func main() { //连接数据库查询 db, err := sql.Open("mysql", "root:xxx@tcp(xxx:3306)/my_test") if err != nil { log.Fa...
阅读全文
posted @ 2019-02-27 20:26
唯一客服系统开发笔记
阅读(6216)
推荐(0)
摘要:
1.在端口已经开放的情况下,ubuntu mysql 3306允许远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnf注释#bind-address = 127.0.0.1 2.给用户授权允许远程访问:grant all privileges on *.* to ro
阅读全文
posted @ 2019-02-27 19:09
唯一客服系统开发笔记
阅读(3795)
推荐(0)
摘要:
package main import ( "log" "os" ) func main() { //创建目录 os.Mkdir("test", os.ModePerm) //写文件 file := "1.txt" file6, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE, 0766) if err != nil { l...
阅读全文
posted @ 2019-02-26 19:29
唯一客服系统开发笔记
阅读(5889)
推荐(0)
摘要:
telnet imap.sina.net 143 A01 LOGIN shihan@appdev.sinanet.com 密码 A02 list "" * //列出邮件夹 * LIST () "/" "INBOX" * LIST (\Drafts) "/" "&g0l6P1k5-" * LIST (\Sent) "/" "&XfJT0ZAB-" * LIST (\Trash) "/" "&...
阅读全文
posted @ 2019-02-26 18:59
唯一客服系统开发笔记
阅读(1717)
推荐(0)
摘要:
1.在windows系统下,需要首先定义两个环境变量GOPATH和GOROOT, GOPATH是第三方类库的代码目录 , GOROOT是go的安装目录 2.按照我的定义 , 进入这个目录D:\golang\code\src\github.com\emersion , 使用git 更新代码 git c
阅读全文
posted @ 2019-02-26 18:49
唯一客服系统开发笔记
阅读(2243)
推荐(0)
摘要:
展示如何使用无缓冲的通道创建一个goroutine池,控制并发频率1.无缓冲通道保证了两个goroutine之间的数据交换2.当所有的goroutine都忙的时候,能够及时通过通道告知调用者3.无缓冲的通道不会有工作在队列里丢失或卡住4.创建一个工作池,比如这时候会创建出2个goroutine,被一
阅读全文
posted @ 2019-02-23 17:26
唯一客服系统开发笔记
阅读(789)
推荐(1)
摘要:
range循环会无限在channels上面迭代 和下面的无限读取是等价的
阅读全文
posted @ 2019-02-23 17:20
唯一客服系统开发笔记
阅读(5140)
推荐(0)
摘要:
go的pool资源池:1.当有多个并发请求的时候,比如需要查询数据库2.先创建一个2个容量的数据库连接资源池3.当一个请求过来的时候,去资源池里请求连接资源,肯定是空的就创建一个连接,执行查询,结束后放入了资源池里4.当第二个请求过来的时候,也是去资源池请求连接资源,就直接在池中拿过来一个连接进行查
阅读全文
posted @ 2019-02-23 15:45
唯一客服系统开发笔记
阅读(1228)
推荐(0)
摘要:
类型断言有点像向下转型,接口类型转到具体的实现实例类型上类型断言是一个使用在接口值上的操作。语法上它看起来像x.(T)被称为断言类型,这里x表示一个接口的类型和T表示一个类型
阅读全文
posted @ 2019-02-23 15:05
唯一客服系统开发笔记
阅读(1720)
推荐(0)
摘要:
error接口1.error就是一个接口interface2.属于errors包,该包有一个导出方法New,返回了errorString类型3.errorString类型实现了error接口4.之所以这样是因为可以实现每个错误都是不同的实例
阅读全文
posted @ 2019-02-21 20:19
唯一客服系统开发笔记
阅读(1600)
推荐(0)
摘要:
接口类型1.接口类型具体描述了一系列方法的集合,实现这些方法的具体类型是这个接口类型的实例2.一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个接口
阅读全文
posted @ 2019-02-21 19:59
唯一客服系统开发笔记
阅读(573)
推荐(0)
摘要:
基于select的多路复用:1.解决如果一个channel中没有事件发过来,程序会立即阻塞,无法接收到第二个channel中的事件2.一般每一个case都代表一个通信操作,多个case会选一个能执行的3.default会默认执行,因此可以作为轮询channel来用
阅读全文
posted @ 2019-02-21 18:46
唯一客服系统开发笔记
阅读(673)
推荐(0)
摘要:
某些类的逻辑非常复杂,简化代码帮助理解下逻辑
阅读全文
posted @ 2019-02-20 19:46
唯一客服系统开发笔记
阅读(4725)
推荐(0)
摘要:
<?php $cmd="ps aux|grep php-fpm"; $res=exec($cmd,$o); var_dump($o);//数组形式返回,每行一个元素 var_dump($res);//字符串形式返回,只返回最后一行 echo "==============================================================\n\r"; $res=s...
阅读全文
posted @ 2019-02-20 17:43
唯一客服系统开发笔记
阅读(757)
推荐(1)
摘要:
通道1.当一个资源需要在goroutine之间共享时,通道在goroutine之间架起了一个管道2.无缓冲通道和有缓冲通道,make的第二个参数就是缓冲区大小3.无缓冲通道需要发送和接收都准备好,否则先执行的goroutine会阻塞等待4.有缓冲的通道,在缓冲区没满之前,发送和接收动作都不会阻塞,空
阅读全文
posted @ 2019-02-16 16:30
唯一客服系统开发笔记
阅读(876)
推荐(0)
摘要:
1.互斥锁用于在代码上创建一个临界区,保证同一时间只有一个goroutine可以执行这个临界区代码2.Lock()和Unlock()定义临界区
阅读全文
posted @ 2019-02-16 10:49
唯一客服系统开发笔记
阅读(3196)
推荐(0)
摘要:
启动了两个goroutine,并完成一些工作。在各自循环的每次迭代之后,在goroutine 会使用LoadInt64 来检查shutdown 变量的值。这个函数会安全地返回shutdown 变量的一个副本。如果这个副本的值为1,goroutine 就会跳出循环并终止。
阅读全文
posted @ 2019-02-15 21:01
唯一客服系统开发笔记
阅读(676)
推荐(0)
摘要:
1.atomic包里的几个函数以及sync包里的mutex类型,提供了解决方案2.原子函数能够以很底层的加锁机制来同步访问整型变量和指针3.atomic.AddInt64(&counter, 1)的原理是强制同一时刻只能有一个goroutine运行并完成这个加法操作
阅读全文
posted @ 2019-02-15 20:08
唯一客服系统开发笔记
阅读(476)
推荐(0)
摘要:
企邮搬家进程管理逻辑,经过简化后的功能实现
阅读全文
posted @ 2019-02-15 17:49
唯一客服系统开发笔记
阅读(634)
推荐(0)
摘要:
1.goroutine在逻辑处理器的线程上进行交换 2.竞争状态:两个或者多个goroutine在没有互相同步的情况下,访问某个共享的资源,并试图同时读和写这个资源,就处于互相竞争的状态对共享资源的读和写操作必须是原子化的,同一时刻只能有一个goroutine对共享资源进行读和写操作 3.使用竞争检
阅读全文
posted @ 2019-02-03 11:25
唯一客服系统开发笔记
阅读(402)
推荐(0)
摘要:
WaitGroup是一个计数信号量,可以用来记录并维护运行的goroutine,如果WaitGroup的值大于0,Wait方法就会阻塞 调用Done方法来减少WaitGroup的值,并最终释放main函数
阅读全文
posted @ 2019-02-01 22:21
唯一客服系统开发笔记
阅读(575)
推荐(0)
摘要:
并发和并行的区别:1.并行是让不同的代码片段同时在不同的物理机器上运行,并行的关键是在不同的物理机器上同时运行 2.并发是同时管理很多事情,比如在一个物理机器上进行不停的调度,有些事情可能只做了一半就被暂停去做别的事情了 3.因为操作系统和硬件总资源一般很少,所以并发的重要性更高,使用较少的资源做更
阅读全文
posted @ 2019-02-01 21:42
唯一客服系统开发笔记
阅读(228)
推荐(0)
摘要:
1.直接在github上clone对应的代码 , 地址为: https://github.com/golang/xxxxxxx.git xxxxxxx为所缺的库名 , 比如net库 text库 https://github.com/golang/net.git https://github.com/
阅读全文
posted @ 2019-01-29 18:47
唯一客服系统开发笔记
阅读(1696)
推荐(0)
摘要:
1.redis并没有直接使用前面的数据结构实现键值对数据库,而是基于数据结构创建了一个对象系统,字符串对象/列表对象/哈希对象/集合对象/有序集合对象都用到了至少一种前面的数据结构2.针对不同的使用场景,为对象设置多种不同的数据结构实现,从而优化对象在不同场景下的使用效率3.redis的对象系统实现
阅读全文
posted @ 2019-01-28 18:53
唯一客服系统开发笔记
阅读(432)
推荐(0)
摘要:
redis的设计与实现:1.假如有一个用户关系模块,要实现一个共同关注功能,计算出两个用户关注了哪些相同的用户,本质上是计算两个用户关注集合的交集,如果使用关系数据库,需要对两个数据表执行join操作,对合并的结果执行去重distinct操作,非常复杂2.Redis直接内置了集合数据类型,支持对集合
阅读全文
posted @ 2019-01-23 14:52
唯一客服系统开发笔记
阅读(1211)
推荐(0)
摘要:
1.计算机一直在演化,64核,128核等等,但是我们依旧在使用为单核设计的技术编程2.Go语言让分享自己的代码包更容易3.Go语言重新思考传统的面向对象,提供了更高效的复用代码手段4.Go不仅提供高性能而且开发更快速5.Go语法简洁,编译速度快,内置并发,自带垃圾回收器6.Go编译器只关注直接被引用
阅读全文
posted @ 2019-01-18 18:15
唯一客服系统开发笔记
阅读(374)
推荐(0)
摘要:
数据库优化:1.可以在单个SQL语句,整个应用程序,单个数据库服务器或多个联网数据库服务器的级别进行优化2.数据库性能取决于数据库级别的几个因素,例如表,查询和配置设置3.在数据库级别进行优化,在硬件级别进行优化,平衡可移植性和性能4.合适的结构,合适的数据类型;执行频繁更新的应用程序大量表(少列)
阅读全文
posted @ 2019-01-18 14:12
唯一客服系统开发笔记
阅读(1769)
推荐(0)
摘要:
go逐行读取文本信息:1.os包提供了操作系统函数的不依赖平台的接口,Open方法打开一个文件用于读取,func Open(name string) (file *File, err error)2.bufio包实现了有缓冲的I/O,NewReader方法创建一个具有默认大小缓冲、从r读取的*Rea
阅读全文
posted @ 2019-01-15 16:22
唯一客服系统开发笔记
阅读(671)
推荐(0)