自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 问答 (1)
  • 收藏
  • 关注

原创 go 生成Set/Get方法

为结构体属性生成Set/Get方法

2022-06-14 14:29:10 2090 1

原创 XXX already exists, no checkout

$ git stash apply stash@{0}XXXX already exists, no checkouterror: could not restore untracked files from stash第一次遇到这种问题,我在分支暂称之为V3.0准备对原框架进行部分升级,但这个只能在其他有空闲的时间去做,所以我就用到了stash,当我有空闲的时候我就进行框架升级改造,当我有开发任务的时候,我就进行正常的业务功能开发,中间只需要进行一次git stash操作,把我的代码进行暂存操作.

2021-12-14 10:23:53 773

原创 记一次,不亦云,索引失效[组合索引]

结合上一篇,当建立组合索引时:场景1 :使用组合索引中的列均出现在条件中 explain SELECT hd.id,hd.create_time, hd.name, hd.phone, hd.sex, hd.nationality, hd.temprature, hd.contact, hd.test_time, case when hd.idcard = '' then '护照'

2021-11-16 14:29:54 2259

原创 记一次,不亦云,生产mysql索引失效实查[in]

本次生产中一个数据导出的功能,在一个月的数据量导出过程中,耗时30+-s,让人难以接受。于是对代码进行了逻辑分析,最后到SQL:这一次颠覆了我以前的不少sql语句中迫使检索放弃索引的概念:1、in脑海概念:SQL语句中使用in会迫使SQL放弃索引进行全表扫描。实际:如果in针对的column并非索引,那么是不会导致索引失效:sql: explain SELECT hd.id,hd.create_time, hd.name, hd.phone,

2021-07-29 20:27:15 1070

原创 记一次内存飙升排查

最近排查一个因文件上传导致内存飙升,被杀死进程的问题,因为这个动作是在大文件上传的时候触发的,而且必先,所以当时第一反应是因文件流忘记关闭导致内存泄露等问题引起,于是把文件上传功能开头到位排查了一遍,没有发现异常,并且导致进程被杀死只发生在测试环境,本地和开发均正常,本地16G内存,开发8G内存,测试2G。使用pprof排查内存分配使用情况:go tool pprof -alloc_space http://localhost:9003/debug/pprof/heap?seconds=20

2021-07-08 10:48:46 506

原创 running gcc failed: exec: “gcc“: executable file not found in %PATH%

缺少CGO编译环境,安装遇到问题较多,记录如下:mingw32/bin/ld.exe: unrecognized option '--high-entropy-va' -----按道理mingw64兼容32,但是实践不行,需要替换64位。

2021-03-24 18:17:54 1257

原创 go i++

The increment statement i++ adds 1 to i ; it’s equivalent to i += 1 which is in turn equivalent to i = i + 1 . There’s a corresponding decrement statement i– that subtracts 1.These are statements, not expressions as the y are in most languages in the C f

2021-03-20 15:49:14 536

原创 wineows git esc 无法进入尾行模式

这个问题困扰了我很久,初期是因为QQ浏览器(不得已要用)占用热键,修改后可以正常使用git但是,这货会经常修改设置,每当我git rebase进行日志合并的时候就头痛不已,因为当我合并了日志,需要保存退出的时候始终无法进入尾行模式,直到昨天一个顺手执行了git rebase --abort 因为当时的代码没提交所以都湿了一部分,才怒从心中起,一定要解决这个问题,于是遍历史书,终于找到了一个解决方法,就是编辑完之后:按Esc+Z(必须大写)同样可以实现保存,同理也使用于Vim模式。...

2021-03-02 16:56:13 338

原创 Go Patterns(二)原型模式

原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。一直也有这样的疑惑,Go是否有必要去实现原型模式?因为我找了很多实现方式,clone的效率并不比new的效率高,Go不是Java,Java的原型模式是通过二进制流的方式实现的clone,Go不同,我做过性能测试,只有一下这种方式和new差不多,性能的提升被没有。但思来想去还是觉得有一个好处吧,以目前的理解能力来看,暂作记录:可以使用深克隆方式保存对象的状态,使用原型模

2021-01-13 16:06:32 109

原创 Go 并发注意(一)count++

couunt++不是原则操作:package mainimport ( "fmt" "sync")func main() { count := 0 wg := sync.WaitGroup{} wg.Add(10) for i := 0; i < 10; i++ { go func() { defer wg.Done() for j := 0; j < 100000; j++ { count++ } }() } wg.Wait()

2021-01-12 14:56:18 440

原创 Go 枚举

枚举是列出某些有穷序列集的所有成员的程序。优点:1、减轻数据的数据存储的压力,数据库不需要保存启动中、进行中、已完成这些占空间且不优雅的状态,可以今仅存储对应的状态码0,1,2即可。2、前后端、多系统对接的时候也会更加的规范,节约流量,能让我们更清晰动作。3、让我们变量有更好的识别度,如果状态码变量只存储了0,1,2,以后的日子将是灾难,定义枚举,我们可以通过枚举变量更好的理解他是做什么的?他要表达的意思是什么?example:当我们需要对一群学生调研他们修喜欢的课程时,数据库不应该

2021-01-08 23:22:52 824

原创 Go Patterns(一) 单例模式

单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。单例模式有 3 个特点:单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点。单例模式的优点和缺点单例模式的优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。 可以避免对资源的多重占用。 单例模式设置全局访问点,可以优化和共享资源的访问。单例模式的缺点:单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有

2021-01-07 19:54:51 183

原创 Go struct 深拷贝与浅拷贝

深浅拷贝的概念:1、深拷贝(Deep Copy):拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。既然内存地址不同,释放内存地址时,可分别释放。值类型的数据,默认全部都是深复制,Array、Int、String、Float,Bool。2、浅拷贝(Shallow Copy):拷贝的是数据地址,只复制指向的对象的指针,此时新对象和老对象指向的内存地址是一样的,新对象值修改时老对象也会变化。释放内存

2021-01-06 11:58:09 1572

原创 redis 保存最新记录

日常开发中经常会遇到需要展示最新几条记录的需求,这个一般也都是比较热数据,存放在缓存是一个不错的高效率解决方案。这个就要用到redis的列表List。使用Ltrim保持固定的长度的: pipeline := radix.Pipeline( radix.FlatCmd(nil, "LPUSH", getDifLatestExKey(country), string(marshal)), radix.FlatCmd(nil, "LTRIM", getDifLatestExKey(count

2020-05-13 20:43:42 801

原创 tcpdump 简明教程

tcpdump 毫无无疑是非常重要的网络分析工具,对于任何想深入理解TCP/IP的人来说,掌握该工具的使用是非常必要的。本教程将向您展示如何以各种方式将流量基于 IP、端口、协议、应用程序层协议过滤出来,以确保您尽快找到所需的数据包内容。基础下面是一些用来配置 tcpdump 的选项,它们非常容易被遗忘,也容易和其它类型的过滤器比如 Wireshark 等混淆。选项-i ...

2020-04-29 20:41:55 468

原创 每天执行动作加一统计操作的优化逻辑

开发中遇到很多业务是要求用户每天完成某个动作加一统计操作,我看到同时都是记录时间,那时间去做比较,记录上次动作时间,用现在的时间和上一次的时间作比较看是不是同一天,还有做的更麻烦,比较的代码一大堆,我也有这个业务,在本子上画来画去,突然发现,总有一个时间凌晨要比较,(也有把啷个时间戳转化为格式化时间,然后截取日期,对比的,也很麻烦,代码也是一大堆。)于是我想既然是每天的动作,为什么不直接在保存的时...

2020-03-17 21:16:15 199

原创 --gogoslick_out: protoc-gen-gogoslick: Plugin failed with status code 1.

GROOT/go/bin下缺少protoc-gen-gogoslick二进制文件,将生成的二进制文件拷贝到对应的目录下即可。

2020-02-25 14:52:26 1302

原创 mysql between and

几年来一直以为MySQL的between...and...是前包含后不包含,其实是错的.以前也看了一些博客文章,也始终这么觉得认为,今天自己才认真的去看,原来是前包含后也包含!这特么不知道以前写了多少个BUG,都没被发现?...

2020-01-17 17:41:32 258

原创 possible resource leak,difer is called in a for loop

我需要一个手动的分页查询,于是我在for循环语句中使用了defer,程序没报什么错,有时候强迫症还是有他的好处的.defer的用法一直是轻车熟路,但很多框架用的久了,这些原本该熟记的东西却不知不觉中模糊了,尽管这样做程序不会报错,但总是会留下bug的可能:possible resource leak,difer is called in a for loop我看了下ide...

2020-01-06 11:38:15 1057

原创 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operat

今天在做一个左链接的时候遇到这个问题,网上很多网人说修改表的编码什么的也都试了,但是问题变化接二连三,问题记录如下:select t.card_num,t.uid,tt.business,ttt.name,t.exchange_time,tt.worth from t_prize_card t left join t_prize tt on t.prizeid = tt.id left jo...

2019-12-09 14:24:05 2077

原创 java.io.IOException: unexpected end of stream on Connection.....cipherSuite=none protocol=http/1.1}

使用protobuf做数据传输时,报了这个错,在路由的入口打debug日志也没有打印。后来发现,在定义路由中的使用的probufter结构体使用错误,导致了这个原因。...

2019-12-06 19:47:46 1232

原创 linux grep \d 无法匹配

今天遇到一个大坑,在日志检索中,使用grep -E检索日志时遇到了一个问题,当误了我半个小时。现将现象记录如下:需要统计的日志格式:, inCode = 449 , 因为验证码是四位,前端在截取回填的时候算错下表少截取了一位,所以说有时候使用正则要比截取靠谱的多。正是这个原因,我需要统计因为这个问题的出错率,我计算出错率,我就必须先拿到因为这个造成失败的总数,这时候就要用到gre...

2019-11-16 20:04:49 1042 2

原创 postman 发送curl -u 发送http请求

Postman 是常用的http请求测试工具,最关键的是他能保存地址参数等,每次使用都可以直接点击请求,方便了很多,也就习惯了,昨天有一个curl的post请求,以前没这样玩过,就是curl-u。怎样通过Postman实现呢?这里使用go语言,先对curl -u 'username:password' 的参数进行base64转码。其实go语言的http请求中就已经实现了CURL ...

2019-11-06 10:52:47 5881

原创 apt install -Could not open lock file

E: Could not open lock file /var/lib/dpkg/lock-frontend - open (2: No such file or directory)E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?sudo mkdir...

2019-10-30 23:43:35 326

原创 protoc-gen-gogoslick: program not found or is not executable

anzhaung : sudo apt install gogoprotobuf

2019-10-28 19:56:07 1172

原创 go 定时任务-凌晨触发

func ResetSomething() { for { now := time.Now() // 计算下一个零点 next := now.Add(time.Hour * 24) next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location()) t := time.Ne...

2019-10-21 20:08:10 456

原创 protoc: error while loading shared libraries: libprotoc.so.21: cannot open shared object file: No su

Linux 安装protobuf 后无法使用识别,在命令行执行:sudo ldconfig查看执行结果:protoc --version得到protoc版本。

2019-10-16 21:27:36 1687

原创 unrecognized import path "golang.org/x/sys"

go mod 失败:添加环境变量:export GOPROXY=https://goproxy.io还是失败,突然想起来,没有刷新,source /etc/profile.在执行go mod vendor成功。

2019-10-15 16:50:57 452

原创 leveldb : resource temporarily unavailable

昨日走时还是正常,今天再跑就报这个错,蛋疼,懒得去找为什么。就重启了虚拟机,再跑就正常了。

2019-08-30 10:35:21 940

转载 fatal: refusing to merge unrelated histories

git pull 失败 ,提示:fatal: refusing tomergeunrelated histories其实这个问题是因为 两个 根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并具体的方法, 一个种方法: 是 从远端库拉下来代码 , 本地要加入的代码放到远端库下载到本地的库, 然后提交上...

2019-08-29 09:55:59 84

原创 MySQL 生产环境update\delete操作前对表的拷贝备份

在Oracle中,经常用 create table t_001 as select * from status;这样的方式对数据库进行表的赋值,防止失误操作造成的灾难,但是在MySQL中好像行不通,多年来一直主要使用Oracle,最近使用MySQL,用这个差点造成灾难。MySQL的数据表拷贝与备份:drop table t001;create table t001 like...

2019-08-21 09:59:10 417

原创 MySQL 导出数据到excel

mysql $databses -u $user -h $hostip -p -e "select uid,lock_volume from discount_tokens where token = 'ckb'" > /home/token.xlsx

2019-08-16 19:58:42 127

原创 wget 后面的下载地址

linux 下载软件包的时候需要用到wget命令,那么wget命令后面跟的下载路径来自哪里呢?比如下载go语言安装包:找到官网下载位置:F12检查:检查找到要下载的版本,找到请求下载的路径,copy。在linux 用命令的方式下载就好:wgethttps://dl.google.com/go/go1.12.7.linux-amd64.tar.gz下载完成存放/home/u...

2019-08-06 19:07:05 495

原创 no field package.preload['lor.index']

openresty,启动时包该错误,但是lor框架已经安装,并且检查whereis lord验证安装成功,为什么找不到lor.index,再看错误代码:这里看到require引入有问题,也就是luajit有问题,但是luajit我已经安装,并配置环境变量,为什么还是错?期间重启服务器,也是无济于事,于是只有重新安装openresty,再生成makefile时就声名使用luajit编译:...

2019-08-05 17:15:51 3865 1

原创 gen 生成gorm映射go文件

gen --connstr "user:password@tcp(127.0.0.1:3306)/databaseName?&parseTime=True" --database tableName --json --gorm --from --guregu

2019-07-19 13:41:12 843

原创 module 'resty.http' not found

没有引入第三方模块resty:解决:1、下载第三方模块依赖:https://github.com/ledgetech/lua-resty-http2、将lua-resty-http/lib/resty下的两个文件http.lua和http_headers.lua拷贝到/usr/local/openresty/lualib/resty目录下(目标路径根据 个人安装的o...

2019-07-11 14:05:12 4585

原创 /usr/bin/env: ‘resty’: No such file or directory

openresty 框架 lor 按照官方给的文档安装后无法正常运行lord命令:解决方案:在/usr/bin下建立resty的钦链接:(根据个人安装的目录,这里是openresty的默认安装目录) ln -s /usr/local/openresty/bin/resty /usr/bin/resty检查lord安装:load -v...

2019-07-10 16:39:29 1040

原创 openresty luajit 安装

以root身份进入openresty解压包下的/bundel/luaJIT-x.x目录:执行安装:make clean && make && make install安装成功:直接检查安装:luajit-v...

2019-07-10 15:15:51 487

原创 OpenResty lor框架安装

在github上借鉴一个openresty框架的web框架,借鉴下来学习一下,其他配置也都OK了,但是一直访问不通,看了错误日志: [C]: in function 'require' /home/ckx/lua-lor-example/lor-example/./app/main.lua:1: in function </home/ckx/lua-lor-example/lor-e...

2019-07-10 11:42:38 345

原创 XXX..sh: nginx: not found - Ubuntu OpenResty 将nginx配置到环境变量

该报错的原因是因为没有将nginx配置到环境变量中,解决:sudo vim /etc/profile在配置文件中添加nginx环境:一般情况下openresty的安装目录是该路径,按照具体安装位置安装即可。重新加载配置文件:source /etc/profile 或者 ./etc/profile测试:nginx -v...

2019-07-09 18:39:16 708

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除