03 2021 档案
摘要:适配器模式的定义: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作 包括两种模式: 类适配器模式与对象适配器 类适配器:Adapter类与被适配类是继承关系 对象适配器:Adapter对象与被适配类对象是委托关系 , 委托关系就
阅读全文
摘要:策略模式(Strategy Pattern)定义了一组策略,分别在不同类中封装起来,每种策略都可以根据当前场景相互替换,从而使策略的变化可以独立于操作者。 大家都写过这样的代码 if (conditionA) { 逻辑1 } else if (conditionB) { 逻辑2 } else if
阅读全文
摘要:php-fpm是进程管理器 , 属于master-worker多进程的模式 当请求xxx.php文件时 , 每一个子worker进程都是在读取和回应FastCGI协议的内容 fastcgi的方式是,fpm启动运行后 , 会常驻内存监听端口(默认9000) , 当web服务器收到一个请求时,他不会重新
阅读全文
摘要:当需要安装使用一些命令的时候 , 需要看清使用哪个位数版本的软件 uname -a 可以查看位数 存在 x86_64的就是64位 存在i386 i686的就是32位 , i686是i386的子集
阅读全文
摘要:启动php-fpm 加载各个模块 , 初始化各模块 调用每个模块的PHP_MINIT_FUNCTION中初始化模块 访问请求到来 请求初始化 , 调用各模块的请求初始化 调用每个模块的PHP_RINIT_FUNCTION初始化请求 处理PHP代码 访问请求结束 调用每个模块的PHP_RSHUTDOW
阅读全文
摘要:部署代码的时候 ,出现了500错误 但是php-fpm下定义的www-error.log的错误日志以及nginx定义的error日志都没有任何显示 可以使用下面这种方式 strace $(pidof 'php-fpm'|sed 's/\([0-9]*\)/-p \1/g') -e write -e
阅读全文
摘要:正常使用形式如下 , 例如下面的代码,按照5秒频率进行执行 func cleanVisitorExpire() { go func() { log.Println("cleanVisitorExpire start...") for { //执行代码 t := time.NewTimer(time.
阅读全文
摘要:PHP的调用函数中现在已经不用在参数中增加引用&符号了 只要在定义函数的参数时候加&就可以 所以尽量把代码中改掉 比如function test(&$a) 调用时 test("aaaa") 不用加&符号
阅读全文
摘要:当使用以下系列函数: ldap_connect()ldap_bind()ldap_search()ldap_get_entries() 需要安装php-ldap扩展 centos下 yum install php-ldap
阅读全文
摘要:这里比较兼容的处理是: server { listen 80; server_name 域名; root 路径; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } access_log /var/log
阅读全文
摘要:当使用mcrypt_get_iv_size这个函数的时候 需要安装 php-mcrypt扩展 centos下 yum install php-mcrypt
阅读全文
摘要:vim 编辑 /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 en
阅读全文
摘要:查看centos的发行版本 cat /etc/redhat-release 查看centos的位数 uname -a
阅读全文
摘要:创建用户和密码 phpfly phpfly: CREATE USER 'phpfly'@'%' IDENTIFIED BY 'phpfly'; 只准操作phpfly数据库 GRANT all ON phpfly.* TO 'phpfly'@'%' ; flush privileges;
阅读全文
摘要:注意memcache 和 memchached扩展不是一个 pecl install memcached 当PHP使用memcached扩展时 , 需要有以下依赖 , 主要是libmemcach yum install libevent-develyum install libmemcached-d
阅读全文
摘要:301,代表 永久重定向,也就是说第一次请求后,下次浏览器再去请求的话,不会向服务器请求了,而是直接从浏览器的缓存里拿 , 所以我们一般不采用 301。 302,代表 临时重定向,也就是说每次去请求都会请求服务器(除非响应中用 Cache-Control 或 Expired 暗示浏览器缓存), 所以
阅读全文
摘要:当使用chrome 无痕模式时, 默认阻止第三方cookie 如果使用了localStorge或者cookie , 就会在js里报错 报错SecurityError: Failed to read the 'localStorage' property from 'Window': Access i
阅读全文
摘要:极简强大Go语言开发在线客服GOFLY0.3.5发布 更新日志: ##### V0.3.5 新增分开系统自动断线与客服关闭连接修复没有设置欢迎时tip显示错误问题修复客服端发送消息错误提示不显示问题修复一些界面问题修复死锁问题 ##### V0.3.3 1.访客/客服端聊天界面样式修改 2.访客端展
阅读全文
摘要:如果有输入http://gofly.sopans.com/ 替换成http://gofly.sopans.com 把最后面的/去掉 , 可以这样搞 console.log("http://gofly.sopans.com/".replace(/([\w\W]+)\/$/,"$1")) 前面的正则部分
阅读全文
摘要:1.在下面并发业务场景 库存业务,stock(id, num),其中: id为库存id 是 1 num为库存值是 5 2.并发下查询 select num from stock where id=1 select num from stock where id=1 得到的值都是5 , 没有问题 3.
阅读全文
摘要:国内的主流浏览器都是双核浏览器:基于Webkit的内核用于常用网站的高速浏览,基于IE的内核 浏览器默认内核的指定只需在head标签中添加一行代码即可:若页面需默认用极速核,增加标签:<meta name="renderer" content="webkit">若页面需默认用ie兼容内核,增加标签:
阅读全文
摘要:sync包中包含了对安全的并发访问资源的方式 , 包含了以下 Mutex:互斥锁RWMutex:读写锁WaitGroup:等待组Once:单次执行Cond:信号量Pool:临时对象池Map:自带锁的map 1.互斥锁 互斥锁需要确保的是某段时间内,不能有多个协程同时访问一段代码(临界区),互斥锁被称
阅读全文
摘要:因为经常被乱码问题搞乱 , 中文的编码GB系列就有好几个 , 看看这三的区别 , 转自知乎 1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5 月 1 日实
阅读全文
摘要:极简强大Go语言开发在线客服GOFLY0.3.3发布 更新日志: ##### V0.3.3 1.访客/客服端聊天界面样式修改 2.访客端展示客服头像信息 3.访客到来自动打开,以及参数控制 4.访客/客服端聊天信息默认折叠 5.客服端新消息提醒标识 6.客服端访客列表展示访客正在输入信息 #####
阅读全文
摘要:数字比较大小很简单 英文字符比较 , 是根据逐个字符的ascii码比较大小的 中文字符比较 , 是根据逐个字符的uincode码比较的 比如 '陶' 是 \u9676 是十六进制 , 十进制是38518 ; '士' 是 \u58eb ,十进制是 22763 因此 陶 > 士
阅读全文
摘要:我的win10网速奇慢 , 经过一番搜索 , 找到这个方法 win + r 打开输入 gpedit.msc 打开组策略编辑 , 默认情况下系统会限制20%的网速 启用这个 , 然后输入0 保存
阅读全文
摘要:我的win10 win+r gpedit.msc 没有这个东西 把下面的文件放在gpedit.bat文件中 ,点击执行 , 就有了 @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Microsoft-Windows-Group
阅读全文
摘要:1. 开启慢查询日志方式: 可以更改数据库配置文件 ,例如在ubuntu下配置文件位置 /etc/mysql/mysql.conf.d/mysqld.cnf 增加这三项 #记录慢查询日志slow_query_log = ONslow_query_log_file = /var/log/mysql/s
阅读全文
摘要:以下排序从最优到最差:system:表内只有一行数据。const:最多只会有一条记录匹配,常用于主键或者唯一索引为条件查询。eq_ref:当连接使用的索引为主键和唯一时会出现。ref:使用普通索引 = 或 <=> 运算符进行比较将会出现。fulltext:使用全文索引。ref_or_null:跟 r
阅读全文
摘要:看下面这段代码 void memory_leak() { int *p = (int *)malloc(sizeof(int)); return; } 上述代码在申请一段内存后直接返回,这样申请到的这块内存在代码中再也没有机会释放掉了,这就是内存泄漏。内存泄漏是一类极为常见的问题,尤其对于不支持自动
阅读全文
摘要:来看这样一段代码 int func() { int a = 2; return &a; } void main() { int* p = fun(); *p = 20; } 这段代码非常简单,func 函数返回一个指向局部变量的地址,main 函数中调用 func 函数,获取到指针后将其设置为 20
阅读全文
摘要:当在windows上使用curl工具时 , 需要配置CA证书 如果您在 Windows 中使用 curl 命令行工具,curl 将在以下目录中按如下顺序搜索名为 curl-ca-bundle.crt 的 CA 证书文件: 1. 应用程序目录 2. 当前执行目录 3. C:\Windows\Syste
阅读全文
摘要:在linux系统curl是自带的工具,在windows下需要单独下载 下载地址: https://curl.se/windows/ 解压缩后 cmd进入解压后的bin目录下
阅读全文
摘要:在git clone或者git push时 如果使用https链接的形式 ,那么必须输入用户名密码 使用ssh的形式就可以配置免密码了 在项目里执行以下命令就可以切换成ssh形式了 git remote set-url origin git@github.com:taoshihan1991/go-f
阅读全文
摘要:github每次push代码都得输入用户名密码 , 这个时候就可以使用ssh的免密形式了 在这个目录下 C:\Users\shihan1\.ssh 右键git bash here ssh-keygen -t ed25519 -C "630892807@qq.com" 生成两个文件 , 把.pub后缀
阅读全文
摘要:默认情况下,开启go mod , 使用root用户进行了拉取包的操作 centos下实测下载的包位置在 /root/go/pkg/mod/ 也就是$HOME/go/pkg/mod 可以使用go env查看详细的环境变量
阅读全文
摘要:当开启go mod时需要设置的环境变量 GOPROXY这个环境变量主要是用于设置 Go 模块代理,主要如下: 它的值是一个以英文逗号 “,” 分割的 Go module proxy 列表 作用:用于使 Go 在后续拉取模块版本时能够脱离传统的 VCS 方式从镜像站点快速拉取。它拥有一个默认:http
阅读全文
摘要:当使用explain查看sql语句 , 出现Using filesort时 , 一定要检查下order by字段 这时候是使用了外部文件排序 , 并且看到rows列是全部数据时 ,速度会比较慢 给这样的字段增加索引 , 可以解决这个问题 没加索引的时候 增加索引以后
阅读全文
摘要:页面中有子iframe页面 , 当子iframe接收到消息 , 比如websocket传递过来的消息时 希望能通知到父级页面 可以使用windows.postMessage传递消息 , 两个参数 ,第一个是数据 ,第二个是跨域时指定的目的域 向父级页面传递消息 , 跨域部分是 * , 表示所有域名
阅读全文
摘要:当需要跨域请求接口会出现 been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 可以在代码里解决 , 也可以直接在nginx里解决 类似GO
阅读全文