自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

非科班会谈

风起于青萍之末,细微处练修行

  • 博客(22)
  • 收藏
  • 关注

原创 如何用python判断字符串包含多个字符串中的一个或多个?

开发过程中,常常需要判断字符串是否存在指定的关键词或排除词,如果设置了多个关键词,往往通过串联and条件或借助for循环做判断,有没有更优雅的方法呢?判断一个字符串含有某个字符串中p = "Tom is a boy,Lucy is a girl,they all like english!"w= 'Tom'print w in p>>>Trueprint p.find(w) > -1>>>True判断一个字符串含有多个字符串中的任意一个p =

2020-11-19 18:13:08 23084 5

原创 关于gorm使用first自动加主键排序的坑

gorm使用first,会自动加上主键的order排序,坑

2022-10-09 15:18:40 1160 1

原创 mac goland常用快捷操作

整理了mac系统里常用的goland快捷操作键

2022-07-22 18:12:26 2365

原创 Mac环境使用pprof进行性能分析分析

mac环境使用pprof进行性能分析,踩坑

2022-06-29 17:01:57 1264

转载 mac安装homeBrew

mac一键安装brew工具包

2022-06-23 17:57:16 111

原创 chan相关的知识点

目录1、chan是不是线性安全的,为什么?2、对一个关闭的chan读写,会发生什么?1、chan是不是线性安全的,为什么?线性安全。chan底层是runtime.chan,chan结构体中有队列长度、接收队列和互斥锁,在读写、关闭等队列操作时,都会加锁,同时只有一个goroutine可以读写队列,实现了chan先进先出的特性。2、对一个关闭的chan读写,会发生什么?对关闭的队列写入会panic,对关闭的队列可以继续读,如果此时chan里有数据,可以正确读到,如果没有数据,会读到chan的默认值,读

2022-05-21 09:37:30 181

原创 Golang打怪升级

作为一名非科班的gophper,参加go面试时遭遇了滑铁卢,面试官特别关心底层的问题,有的东西感觉看过,一问就答不上来,遂以此贴记录面试遇到过的问题,打怪升级!!1、解释一下go的闭包第一个问题就慌了,知道怎么回事,就是不会表达!1.函数体内嵌套另一个函数,并且返回值是函数体。2.主函数体内的子函数被主题函数外变量引用时,就创建一个闭包。3.不同的变量引用各自调用没有关系。4.闭包函数不会被GC(垃圾回收机制)回收所占用资源,因此会出现外部调用时会接着上次调用的结果。2、map的底层是怎么实现

2022-05-18 22:10:12 297

原创 通过channel限制goroutine并发数量

在Golang中,Goroutine虽然很好,但是数量太多了,往往会带来很多麻烦,比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来。所以我们可以限制下Goroutine的数量,这样就需要在每一次执行go之前判断goroutine的数量,如果数量超了,就要阻塞go的执行。所以通常我们第一时间想到的就是使用通道。每次执行的go之前向通道写入值,直到通道满的时候就阻塞了,package mainimport "fmt"var ch chan intfunc elegance(

2022-05-06 12:11:49 715

原创 python遇到执行超时如何跳过避免任务卡死

通过eventlet解决超时跳出问题

2022-04-26 16:27:38 3612

原创 laravel The requested URL was not found on this server

记录.htaccess为空导致的laravel自定义路由访问报错问题

2022-03-16 15:42:46 916

原创 Golang的锁机制

Golang 中的锁Golang 中的有两种锁,为 sync.Mutex 和 sync.RWMutex。sync.Mutex 的锁只有一种锁:Lock(),它是绝对锁,同一时间只能有一个锁。sync.RWMutex 叫读写锁,它有两种锁: RLock() 和 Lock():RLock() 叫读锁。它不是绝对锁,比起互斥锁有着更高的并行性,它允许多个读者同时读取。Lock() 叫写锁,它是个绝对锁,就是说,如果一旦某人拿到了这个锁,别人就不能再获取此锁了。另外,有一种特性:当写锁阻塞时,新的读锁

2022-03-01 08:59:23 3323

原创 laravel如何校验并替换请求参数

最近发现百度爬虫抓取时在部分url请求参数拼接了“this_erji_yuming”,导致相应的页面服务不可用。解决思路:增加通用中间件,并在中间件内替换有问题的request参数,需要注意的是,普通参数和路由参数获取及赋值方法不一致,替换路由参数只会改变request->{key}和当前的$routeParams,并未改变request的路由属性,如其他中间件通过getRoutes()重新获取参数依然会有问题。 //校验普通参数 $params = $request

2021-08-09 11:57:31 380

原创 升级Elasticsearch7.x踩坑指南

公司一直用的Elasticsearch5.3,出于性能考虑,计划升级到较新的7.x,但是发现与5.x有很多不兼容的地方,以下是踩坑过程中的一些理解,踩坑版本【7.9.3】,持续更新中:1、ES数据存储结构变化:去除了Type在es7中使用默认的_doc作为type,不支持修改,也就是说一个mapping只允许一个type,相比于5.x多type影响还是挺大的,相应的api查询也发生了变化,如获得某索引的某ID的文档:GET index/_doc/id其中index和id为具体的值2、header请求头

2021-06-03 19:12:48 1561

原创 用闭包写法优化laravel多条件查询

当需要创建较复杂的where子句,以避免部分条件全局应用或更好的使用索引时,如orWhere、whereIn等,可以用闭包函数优化查询。laravel闭包查询格式:function ($query,$param1,$param2,...) { $query->where('column1', '=', $param1) ->where('column2', '=', $param2); }通过一个 闭包函数 写入 条件 方法构建一个查询构造器 来约束一个分组。这个

2021-05-31 17:34:58 1096 4

原创 Mysql如何指定日期按周分组,并按次数分类统计

需要统计今年以来,每周用户的提问次数,并按提问次数进行分类统计,格式如下:因为初始日不能按自然周算,所以这里的周不适合用week()函数,第几周 =(提问时间-指定日期)/7确定了计算方式,首先按周和用户ID分组,查询周,提问次数,然后通过case when对查询结果按提问次数分类,sql如下:SELECT weeks,CONCAT(LEFT(MIN(create_time),10),"至",LEFT(MAX(create_time),10)) AS date_range,SUM(CASE W

2021-03-26 15:51:54 4092 2

原创 Mysql Too many connections错误的解决办法

[ERROR] (1040, ‘Too many connections’)查看Mysql最大连接数SHOW VARIABLES LIKE ‘%max_connections%’;±----------------±------+| Variable_name | Value |±----------------±------+| max_connections | 100 |±----------------±------+查看当前连接数SHOW STATUS LIKE ‘Thre

2020-12-29 23:24:57 708 1

原创 Elasticsearch如何无感知迁移线上集群或更换节点

前段时间是我们的流量高峰,为了保障搜索服务性能,同时节约成本,我们使用了大量的阿里云抢占式节点,临近双十一,没有任何通知的情况下,有3台抢占式节点被强制释放,着实吓出一身冷汗。经此一吓,领导要求用新的永久服务器替换抢占式集群,并且保证线上业务和数据业务不受影响,经过一番心惊肉跳的尝试,终于算是完成了集群迁移,记录一下过程,供参考:1、创建ES线上节点镜像或快照2、通过镜像或快照快速同步线上集群数据3、修改新节点配置,定义新集群名4、启动新集群,修改数据业务同时往新旧集群插入数据,同步当前时间与快照

2020-11-05 15:09:17 363 1

原创 mysql通过substring_index函数获取日志表中url字段的参数值

函数介绍substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数查询示例:http://www.tinyzhe.top?param1=cool&param2=code想要获取url中的param1参数值,可以嵌套两层substring_index函数,先用"param1=“作为分隔符,得到url后半部分,再用”&"作为分隔符,得到url前半部分,如果只有一个参数直接取第一次截取的后半部分即可,sql如下:SEL

2020-05-16 16:43:56 694

转载 使用 mitmproxy + python 做拦截代理

转自:https://blog.wolfogre.com/posts/usage-of-mitmproxy/本文是一个较为完整的 mitmproxy 教程,侧重于介绍如何开发拦截脚本,帮助读者能够快速得到一个自定义的代理工具。本文假设读者有基本的 python 知识,且已经安装好了一个 python 3 开发环境。如果你对 nodejs 的熟悉程度大于对 python,可移步到 anyprox...

2020-01-11 11:27:48 261

原创 一对一、一对多同义词表设计方案

同义词需求:小白,白素贞小白,江小白教师,老师,园丁小白同义词包含:白素贞、江小白,白素贞与江小白不能互为同义词关系表一:同义词表储存所有不重复的同义词CREATE TABLE `god_dict_synonym_words` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAUL...

2019-12-19 12:00:23 1062 1

原创 MySQL:Left Join 避坑指南

left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论、商城里一个货物有多少评论、一条评论有多少个赞等等。但是由于对join、on、where等关键字的不熟悉,有时候会导致查询结果与预期不符,所以今天我就来总结一下,一起避坑。这里我先给出一个场景,并抛出两个问题,如果你都能答对那这篇文章就不用看了。假设有一个班级管理应用,有一个表classes,存了所有...

2019-12-11 14:35:51 100

原创 pip快速安装python库的方法(镜像网站)

1、可以使用的镜像阿里云:http://mirrors.aliyun.com/pypi/simple/清华:https://pypi.tuna.tsinghua.edu.cn/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi....

2019-12-09 17:29:53 1453 1

空空如也

空空如也

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

TA关注的人

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