- 博客(153)
- 资源 (2)
- 收藏
- 关注
原创 go for基本使用
for 常用的几种形式package mainfunc main() { //普通循环 var i int for i = 0; i < 10; i++ { println(i) } //初始化,并循环 for j := 0; j < 10; j++ { println(j) } //省略初始化 var h int32 = 10 for ; h < 10; h++ { println(h) } //省略后置子句, 死循环 for ; h
2022-03-13 11:21:32
616
原创 go switch 基本使用
1. 常用switch, 一个case 多个条件, 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 casevar lang string lang = "js" //常用switch, 一个case 多个条件, 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case switch lang { case "java": println("this case is java") case "go", "js": printl
2022-03-13 10:50:53
562
原创 go if 使用
1. 一般使用 if - elsevar i int i = 100 //if-else普通的通用方式 if i < 10 { println("i less than 10") } else { println("i more than 10") }2. if - else if - else var i int i = 100 //if-elseif-else 通用方式 if i < 100 { println("i less than 100
2022-03-13 10:13:36
563
原创 go package 相关介绍
1. 包的导入两种写法import ( "fmt" "log")func main() { fmt.Println("test import package") log.Default()}import "fmt"import "log"func main() { fmt.Println("test import package") log.Default()}2. 如果使用包名称一样,需要给其中一个添加别名package mainimport ( "dem
2022-03-12 21:33:49
382
原创 go grpc 完整实例
最近开始完整的学go , 这里简单记录下用go 开发的grpc demo。这里主要实现的是client 传id参数,rpc调用getUser 方法获取server 结果。1. 开发配置安装go 环境,配置好GOROOT, GOPATH 和goproxy, 开启GO111MODULE。使用goland 开发的,设置好编辑器的GOROOT信息(假如go是高版本的如1.17.8,会提示不是合法sdk),可以参照这篇文https://www.cnblogs.com/taoshihan/p/158248.
2022-03-12 12:00:26
1497
2
原创 docker 常用命令(一)
这里主要和记录介绍下docker 里面比较常用的命令。ps 查看容器不带参数查看当前本机运行的 容器-a 查看本机的所有容器,存在的容器-q 只输出container_id–help 查看可以使用的参数images 查看镜像不带参数,显示当前本地所有镜像-a 查看本机所有镜像,包含隐藏的中间层-q 只输出镜像ID–help 查看可以使用的其他参数run 运行镜像作为容器v 指定运行的容器,挂载volumnp 绑定host 和container portl 添加la
2021-12-31 22:58:05
383
原创 nginx docker镜像迁移到mac M1问题排查处理记录
近期开发从原来的小米window 10 换到mac air M1 上面。本来跑的docker nginx 到m1 上启动不了。根据docker logs nginx 查看日志,提示的错误是 nginx: [error] failed to initialize Lua VM。 网上搜了解决的办法不是很多。针对这个问题,我开始的判断是认为是平台问题,原来windows 是x86架构,现在M1 是arm 。根据dockerfile 查看,nginx 镜像是在centos 基础上,使用的Tengine/2.
2021-12-30 23:26:44
3484
2
原创 PHP mcrypt 加解密兼容openssl
mcrypt_encrypt mcrypt_decrypt 已经比较古老,7.1 + PHP已经不支持。新的替换方式使用openssl_encrypt openssl_decrypt。 升级会涉及到新老加解密方式兼容问题。*** 低版本PHP mcrypt ***private function _pkcs5Pad($text, $blockSize) { $pad = $blockSize - (strlen($text) % $blockSize); return $text . st.
2021-05-25 11:49:26
474
原创 PHP导出csv 注意事项
public function export($search) { header("Content-Type: text/csv"); header("Content-Disposition: attachment; filename={$filename}.csv"); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('Expires:0
2021-05-08 19:39:21
222
原创 vscode terminal配置 Meslo LG M Regular for Powerline 字体
最近尝试使用vscode 开发, 打开terminal 使用的系统中的zsh显示乱码。后来确定问题是zsh在 iterm2 中使用的是Meslo LG M Regular for Powerline, vscode 默认是monospace。 二者字体不匹配导致的。显示乱码:更改vscode terminal 字体步骤:打开设置,搜索terminal font-family编辑settings.json如下Meslo LG M for Powerline,字体本身名称 Meslo.
2021-02-10 18:17:11
4076
2
原创 数据库事务相关介绍
数据库中事务的四大特性(ACID)原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。隔离性(Isolation)隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事
2020-11-11 15:15:04
143
原创 几种接口管理工具介绍
doclever官方地址:http://www.doclever.cn是一家专门开发相关系统的公司开发,社区不是很活跃。基本功能可以满足需求,不支持返回xml格式。mock 功能比较简单集成了mockjs,只能返回基本的自定义格式,可以支持接口完成,请求地址自动切换。yapi官方地址:https://yapi.baidu.com/百度开发的,使用的比较广泛,社区比较活跃。可以支持高级mock,设置返回格式xml,参数校验。Rap官方地址:http://rap2.taobao.org..
2020-11-10 11:08:12
2337
2
原创 redis基础数据格式 - 有序集合
添加,查看//zadd 往集合里面添加一个或多个成员127.0.0.1:6379> zadd myzset 1 "a"(integer) 1127.0.0.1:6379> zadd myzset 2 "b"(integer) 1127.0.0.1:6379> zadd myzset 3 "c" 4 "d" 5 "c"(integer) 2// zrange 查看指定下标区间的成员,其中成员的位置按分数值递增(从小到大)来排序// zrevrange 按从大到小排序
2020-08-29 18:40:34
201
原创 redis基础数据格式 - 集合
添加,查看//sadd 往集合中添加三个成员,单个添加127.0.0.1:6379> sadd languages en(integer) 1127.0.0.1:6379> sadd languages zh(integer) 1127.0.0.1:6379> sadd languages fr(integer) 1//Redis2.4版本以前, SADD 只接受单个成员值, 可以一次添加多个127.0.0.1:6379> sadd languages en zh
2020-08-28 23:48:00
194
原创 redis基础数据格式 - hash
添加, 读取127.0.0.1:6379> hset languages php "learn php"(integer) 0127.0.0.1:6379> hset languages java "learn java"(integer) 1127.0.0.1:6379> hset languages go "learn go"(integer) 0//也可以是使用hmset 一次设置多个值127.0.0.1:6379> hmset languages php "
2020-08-28 23:19:37
256
原创 redis基础数据格式 - 列表
1. 右进左出:队列> rpush languages php java(integer) 2> rpush languages go(integer) 3> llen languages(integer) 3> lpop languages"php"> lpop languages"java"2. 右进右出:栈> rpush languages php java(integer) 2> rpush languages go(int
2020-08-26 23:24:58
182
原创 redis基础数据格式 - 字符串
1. 基本使用(读,写,是存在,删除)单个操作:批量操作:是否存在key处理,存在不设置,不存在创建2. 设置过期时间可以通过expire 给已经存在的key设置 过期时间,也可以通过setex 创建并且设置过期时间。*** tips: 如果设置过过期时间的key , 值被重新设置了,对应的过期时间也失效了***3. 计数器如果 value 值是一个整数,还可以对它进行自增操作。自增是有范围的,它的范围是 signed long 的最大最小值,超过了这个值,Redis 会报错。.
2020-08-26 17:48:27
140
原创 神奇mac Alfred 之sublime
最近使用alfred 快速打开phpstorm ,挺好的。平时开发用的另一个毕竟多的就是sublime,就想着是不是也有类似的功能,果然有。这一篇继续介绍下快速打开sublime 项目主要步骤下载 sublime 对应的workflow https://github.com/deanishe/alfred-sublime-text ,找到release 最新的包下载。直接双击打开 Sublime-Text-Projects-3.1.2.alfredworkflow (当前版本),自动导入到al.
2020-06-12 08:52:48
683
原创 神奇mac Alfred 之phpstorm & jetbrains全家桶使用
这一篇主要介绍使用alfred,怎么样快速打开phpstorm 项目。同时也支持jetbrains全家桶的其他的工具如clion, datagrip, goland等。通过alfred 处理复杂的工作,需要使用到workflow。 这里主要使用的是 jetbrains-alfred-workflow主要步骤下载 https://github.com/bchatard/jetbrains-alfred-workflow打开alfred 的workflow , 把刚下载的workflow 拖入.
2020-06-11 23:32:11
2080
原创 神奇的mac Alfred 之 常用功能
最近无聊看好用的mac 工具,发现了alfred 这个工具,评价很高,能很大的提升使用效率。主要是代替了mac os 自带的spotlight search, 并且功能更强大,具体看下面几方面。我目前使用的4.0.4版本配置常用的网站快捷键自带的已经配置了常用网站的,google ,youtube 这些,具体看下面截图。除了系统自带的,这个也可以自定义,点击右下脚添加,设置具体的网址,名称,图标这种。我设置了百度搜索,百度翻译3. 假如涉及到更复杂的功能,需要使用的workfl.
2020-06-10 10:54:09
701
原创 PHP隐式类型转换常见问题
因为PHP式弱类型语言,变量的类型是运行的上下文决定的。很多时候运行存在隐式转换问题,给代码带来异常情况。例子 var_dump(0 == 'all') // true // 这里会把 all 转换成整型0 var_dump(0 === 'all') // false // 类型不变 $array = [ 'a' => 1, 'b' => true, 'c' => false, 'd' => 'ttt',];
2020-05-24 17:14:08
541
原创 PHP 输出方式汇总
echo输出一个或多个字符串(输出其他格式会转换成字符串,对象输出会提示错误)是语言结构,不是函数可以传递多个参数无返回值<?phpecho "hello world\n";// hello world$a = "hello";echo "$a world\n";// hello worldhelloworld$b = "world";echo $a,$b."\n";//helloworld$c = [1,2,3];echo $c."\n";..
2020-05-24 11:40:02
680
原创 mac iterm2配置ssh自动登陆
使用mac 的基本上会配置iterm的 命令行工具,主要是介绍怎么配置自动ssh登陆服务器,减少每次输入命令到烦恼。系统中创建iterm2login.sh(名字任意) shell脚本, 赋予可执行权限。#!/usr/bin/expectset timeout 30spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $arg...
2020-01-23 21:42:31
2534
1
原创 PHP PDO绑定IN/NOT IN语句中Array变量
最近项目中使用的框架,封装了IN方法,但是没有封装NOT IN 。 使用NOT IN 只能用原生的PDO语法,想当然的写出来,结果就是BUG。tips: 表结构| id ||:----|| 1 || 2 || 3 || 4 |刚开始的代码如下:<?phptry {$dns = "mysql:host=***;dbname=*";$pdo = new PD...
2019-07-27 19:48:30
1781
原创 Sublime Text3 mac 下常用快捷键和插件
常用快捷键跳到指定行 Control + G (Command+p 输入:也可以跳到指定行)折叠代码 Option+Command+[打开折叠代码Option+Command+]文件名搜索Command+p包安装命令模式 Command+shift+p折叠所有属性 Ctrl+KT展开所有属性 Ctrl+K0创建一个新窗口 Ctrl+Shift+N在当前窗口创建一个新标签 Ctr...
2019-06-01 22:39:03
1131
原创 homebrew更新源解决慢的问题
homebrew慢,主要常见的是安装过程中慢和后续安装需要的程序慢。下载home-core文件,更新源git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1cd "$(brew --repo)"...
2019-03-23 22:36:51
1422
原创 mac解决homebrew官网安装慢的问题
mac 上安装程序的超强工具homebrew。 这篇文章主要介绍使用官方介绍的方法安装慢的解决办法。下载安装脚本curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install官方安装慢,主要是因为需要下载github.com上的资源。替换安装文件中...
2019-03-23 22:23:31
7822
原创 php相关链接
1. php 扩展开发和内核应用 :http://www.cunmou.com/phpbook/preface.md2.php 单元测试https://phpunit.de/index.html3.laravel相关文章:https://laravel-china.org/users/1795
2019-03-16 21:56:11
225
原创 PHP中布尔型常见问题
前段时间换工作,前后面试了大概两个礼拜,有十几家公司。现在把遇到的频率比较高的题目整理出来,给年后需要找工作的小伙伴参考。针对boolean型主要有两方面的问题。类型转换,其他类型转换成boolean结果<?phpvar_dump((bool) ""); // bool(false)var_dump((bool) 1); // bool(tr...
2019-01-27 17:28:23
857
原创 PHP引用问题-数组中foreach使用引用(二)
前段时间换工作,前后面试了大概两个礼拜,有十几家公司。现在把遇到的频率比较高的题目整理出来,给年后需要找工作的小伙伴参考。在PHP 中引用的意思是:不同的名字访问同一个变量内容。PHP地址相关的问题,一般喜欢两种形式的,一种是考察传值和传引用(具体可以参考请一篇文章PHP地址问题-传值与传引用(一))。另一种就是本篇文章说的,循环中使用引用(一般要修改数组中值,除了$k => $v形...
2019-01-26 21:48:31
743
原创 PHP引用问题-传值与传引用(一)
前段时间换工作,前后面试了大概两个礼拜,有十几家公司。现在把遇到的频率比较高的题目整理出来,给年后需要找工作的小伙伴。希望对你有帮助。基本上面试PHP的工作岗位,必不可少的是要考察地址相关知识。想想这么希望问这一块的问题,无外乎两个原因:1. 这一块平时工作很少用(几乎不用) 2. 这一块大部分人不清楚,使用中容易产生问题。具体结合下面的题目:$a = 1;$b = $a;$c = &amp;...
2019-01-26 20:42:55
1198
原创 MySQL datetime类型默认值
设计表结构的时候,很多时候会添加created_at,updated_at创建时间修改时间(命名习惯可能不一样)。之前很多时候是在代码中维护这两个字段,最近看到个办法可以使用mysql自己维护。这里说的是更新时间,通过mysql 自己维护。不需要我们代码中在去专门处理。在创建的字段的时候,设置defult value:CURRENT_TIMESTAMP, 勾选 on update curre...
2018-12-09 18:30:00
15292
2
原创 MySQL分表
这里说的分表只是单纯的分表,不涉及到集群,其他存储引擎实现,水平有限还在不断学习。分表主要就是两种,水平分表,垂直分表。水平分表,主要是针对单表的数据量过大(一般可以几百万级别 ,甚至更大)。因为过大,导致操作效率低下,需要根据一个原则拆分成多个子表。比如常用的是更加原表中自增长id,取模运算,结果一样的放入一个子表中,这样根据id可以去对应的表查询记录。补充说明: 这里比较常见的一个...
2018-12-09 17:56:45
493
原创 mysql replace 和replace into使用
最近听别人介绍mysql实现发号器功能,使用的是replace into。之前经常使用是replace,并不知道replace into做什么用。了解下replace是mysql 里面处理字符串比较常用的函数,可以替换字符串中的内容。类似的处理字符串的还有trim截取操作,这里就不在多说。replace into 主要作用类似insert插入操作。主要的区别是replace会根据主键或者...
2018-12-09 17:21:55
6630
原创 php中解决并发插入的方法
很多项目开发中会涉及到并发插入的问题,最近看到一种比较简单的解决办法,也谈不上好坏,原理是差不多的。主要是利用redis存在一个key唯一的固定值称为锁,每次插入操作前检查锁是否存在,如果存在就等待一会在来执行。如果不存在,开启锁,执行插入操作,操作成功后在释放锁。一般常用的这种方法的项目,肯定会封装成全局的方法。如: Redis::lock(),Redis::unlock()。实例如下...
2018-12-08 18:00:37
1336
原创 yii使用中的需要注意的并发更新问题
说明下这个问题出现背景。最近新开发一个类似于电商的系统,里面会涉及到很多更新操作,入商品的库存更新。之前以为没有注意到并发操作的问题,导致代码存在问题。记录下来,加深印象避免后续再有这样的问题。这里还是使用的yii1框架,大家知道一般yii1中更新数据,一个有两种操作方式。代码如下:使用update方法,还有update,updateAll具体方法这里不具体讨论(new model)...
2018-12-08 17:32:58
1220
原创 mysql查看表创建语句
大家经常会遇到,需要把表结构从测试环境导入到线上。最近偶然看到一个不常用的sql语句,可以查看创建表的生成语句。直接看下面的语句//查看表的创建语句show create table logs//结果返回两个字段,一个是table 表命,另一个是create table内容CREATE TABLE `logs` ( `id` bigint(20) NOT NULL AUTO_I...
2018-11-08 22:31:27
6302
原创 gii设置访问权限
最近接手yii1开发的一个项目,开发一个新的功能。需要创建个表,使用对应gii生成model。结果提示需要输入密码,看了配置才知道yii1中gii 配置有password属性。后来查看yii2中没有这个,只有ip限制这里主要介绍下ip限制,之前就遇到过本地测试可以,到线上环境就无法访问了。配置:$config['modules']['gii'] = [ 'class' =...
2018-11-08 22:24:20
709
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人