- 博客(473)
- 资源 (3)
- 收藏
- 关注

转载 php生成唯一订单
//生成唯一订单 function build_order_no(){ return date('ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); } //获取唯一序列号 2 public static function generateNum() ...
2018-01-25 10:42:23
949
转载 Go 每日漫谈——Go Module 的一些坑
每天和大家来漫谈 Go 语言的相关的一些知识、问题、最佳实践等。今天是第一天,来说一说Go Module unknown revision 的问题。简单介绍下Go Module,它是一个 Go 依赖管理工具。现在我们生成一个可执行文件,它在 go.mod 寻找依赖。$ go install app.go我们会使用一些依赖,这些代码在私有仓库比如 Gitlab、Github 上。执行上面命令之后,会提示下面的文字或者反复需要输入用户名密码去验证,即使你配置了 ssh keys 。go.
2020-09-16 17:19:10
1205
转载 从几个简单的程序看PHP的垃圾回收机制
每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁,防止程序执行内存溢出。一、PHP 垃圾回收机制(Garbage Collector 简称GC)在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制,防止内存溢出。当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进程一般都跟着每起一个SESSIO
2020-07-26 22:20:14
975
原创 php+go实现grpc
1.先安装编译器:https://github.com/google/protobuf/releases把bin下的exe放到环境PATH目录。做成环境变量.2.获取go支持库的插件: // gRPC运行时接口编解码支持库 go get -u github.com/golang/protobuf/proto // 从 Proto文件(gRPC接口描述文件) 生成 go文件 的编译器插件 go get -u github.com/golang/protobuf/protoc-gen-g
2020-07-05 14:14:18
2068
1
原创 Go modules: checksum mismatch
今天手贱,在goland里运行了下go mod vendor.然后各种问题。总是报这个:或者就是出现程序可以运行,但是文件里导入包标红,ctrl+左键不跳。然后不停的删.idea,删go.mod,go.sum重构还是不行。最后执行go clean -modcache...
2020-04-15 14:27:57
3257
转载 lavarel服务提供者
先看一篇好的介绍:前言刚开始看 laravel 服务容器、契约、服务提供器的确生涩难懂,不单单是概念繁多,而且实际的 demo 很难找(找是找到了,但难用啊),最后就隔一段时间看一遍,大概个十来遍,还真给看出个门道,废话少说上代码。准备阶段首先声明一下我的测试环境php 7.2.4laravel 5.61. 创建新项目(composer)在你的项目目录命令行运行:comp...
2020-03-10 20:54:57
900
转载 ElasticSearch7.2 父子文档
建立父-子文档语法首先看一下如何建立父子文档,明显和网上”_parent”的方式不一样,说明es后期版本已经修改了语法 12345678910111213 PUT my_index{ "mappings": { "properties": { "my_join_field": { "typ...
2020-03-01 18:32:29
9867
3
转载 Elasticsearch:运用search_after来进行深度分页
在上一篇文章 “Elasticsearch:运用scroll接口对大量数据实现更好的分页”,我们讲述了如何运用scroll接口来对大量数据来进行有效地分页。在那篇文章中,我们讲述了两种方法:from加上size的方法来进行分页运用scroll接口来进行分页对于大量的数据而言,我们尽量避免使用from+size这种方法。这里的原因是index.max_result_window的默认值是10...
2020-03-01 13:00:52
2654
转载 Elasticsearch--Aggregation详细总结(聚合统计)
Elasticsearch的Aggregation功能也异常强悍。Aggregation共分为三种:Metric Aggregations、Bucket Aggregations、 Pipeline Aggregations。下面将分别进行总结。以下所有内容都来自官网:喜欢原汁原味的参看下方网址,不喜欢英文的参看本人总结。官网(权威):https://www.elastic.co...
2020-02-29 19:19:12
2811
转载 Elasticsearch Suggester详解(自动补全)
现代的搜索引擎,一般会具备"Suggest As You Type"功能,即在用户输入搜索的过程中,进行自动补全或者纠错。 通过协助用户输入更精准的关键词,提高后续全文搜索阶段文档匹配的程度。例如在Google上输入部分关键词,甚至输入拼写错误的关键词时,它依然能够提示出用户想要输入的内容:如果自己亲手去试一下,可以看到Google在用户刚开始输入的时候是自动补全的,而当...
2020-02-29 10:57:37
2027
转载 elasticsearch 中的_all、_source和index、store
elasticsearch 中的_all、_source和index、store一、_all二、_source四、store一、_all_all字段默认是关闭的,如果要开启_all字段,索引增大是不言而喻的。_all字段开启适用于不指定搜索某一个字段,根据关键词,搜索整个文档内容二、_source“includes”: [“path1.", "path2.”],包含那些字段,当"e...
2020-02-29 10:23:14
1070
转载 图解Elasticsearch中的_source、_all、store和index属性
默认情况下,Elasticsearch里面有2份内容,一份是原始文档,也就是_source字段里的内容,我们在Elasticsearch中搜索文档,查看的文档内容就是_source中的内容_all字段里面包含了一个文档里面的所有信息,是一个超级字段。以图中的文档为例,如果开启_all字段,那么title+content会组成一个超级字段,这个字段包含了其他字段的所有内容,当然也可以设置...
2020-02-29 10:20:20
1197
转载 elasticsearch 索引别名
查看别名get /xx-index/_aliases1对1 添加post /_aliases{"actions": [{"add" : { "index" : "xx-2018-08-08", "alias": "xxxxxx"} }]}1对1 移除post /_aliases{"actions": [{"remove" : { "index" : ...
2020-02-29 09:52:00
871
转载 ElasticSearch(7.2.2)-es之query_string查询
介绍query_string 查询,如果熟悉lucene的查询语法,我们可以直接⽤lucene查询语法写⼀个查询串进⾏查询,ES中接到请求后,通过查询解析器,解析查询串⽣成对应的查询。指定单个字段查询POST /nba/_search{ "query": { "query_string": { "default_field": "displayNameEn", "q...
2020-02-28 20:28:43
1625
转载 Elasticsearch中的store field跟non-store field的区别
在定义index的mapping的时候,我们可以指定某些fields是否要store(默认是不store), 那么他们有什么区别呢?PUT /my_index{ "mappings": { "my_type": { "properties": { "title": { "type": "string","store": true...
2020-02-28 18:56:39
1061
转载 Elasticsearch 7.x 映射(Mapping)中的字段类型
1 概念Elasticsearch的映射用来定义一个索引中的文档如何被存储,定义一个映射类似于定义一个Mongo DB集合,在Elasticsearch 7.x中,映射和索引是一对一的关系。映射分为静态映射和动态映射,前者需要用户手动定义,后者则直接在向一个未生成的索引添加文档的时候自动生成。1.1 动态映射用户尝试向一个不存在的索引添加文档时,Elasticsearch会新建该索引并根据...
2020-02-28 14:36:44
3075
转载 elasticsearch优化之多字段搜索multi_match查询
1 首先说下multi_match多字段匹配的三种类型,分别是best_fields(最佳字段) 、 most_fields(多数字段) 和 cross_fields(跨字段)2 best_fields类型,multi_match默认的查询类型,可以省略不写,返回某一个字段匹配到最多关键字的文档,比如我搜索”李安生日“,下面有两个文档GET /news/_search{ "query"...
2020-02-28 10:45:18
1192
转载 elasticsearch 7.0 新特性之 Match Bool Prefix Query
1、介绍match_bool_prefix 查询内部将输入文本通过指定analyzer分词器处理为多个term,然后基于这些个term进行bool query,除了最后一个term使用前缀查询 其它都是term query。查询语句:GET /_search{ "query": { "match_bool_prefix" : { ...
2020-02-28 10:30:58
2467
转载 匹配查询(Match)
匹配(Match)查询属于全文(Fulltext)查询,不同于词条查询,ElasticSearch引擎在处理全文搜索时,首先分析(analyze)查询字符串,然后根据分词构建查询,最终返回查询结果。匹配查询共有三种类型,分别是布尔(boolean)、短语(phrase)和短语前缀(phrase_prefix),默认的匹配查询是布尔类型,这意味着,ElasticSearch引擎首先分析查询字符串,根...
2020-02-28 10:10:24
2140
转载 elasticsearch 7.0 新特性之Intervals query
1、介绍为了更加简单灵活的控制查询时字符串在文本中匹配的距离与先后顺序,官方在es7.0引入了intervals query,用户可单一或者组合多个规则集合在某一个特定的text field上进行操作。例如,我们用“my favourite food”这样一个字符串在my_text field里进行intervals查询,查询规则是该字符串出现在"hot water"或者“cold por...
2020-02-28 09:56:17
2828
转载 Elasticsearch(7) ---复合查询
复合查询有:bool query(布尔查询)、boosting query(提高查询)、constant_score(固定分数查询)、dis_max(最佳匹配查询)、function_score(函数查询)。一、bool query(布尔查询)1、概念定义可以理解成通过布尔逻辑将较小的查询组合成较大的查询。Bool查询语法有以下特点子查询可以任意顺序出现 可以嵌套多个查询,...
2020-02-27 19:40:03
1014
转载 Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation
什么是聚合(Aggregation)1、 elasticsearch 除了搜索以外,提供的针对ES数据进行统计分析的功能实时性高、Hadoop(T+1)2、通过聚合,我们会得到一个数据的概览,是分析和总结全套的数据,而不是寻找单个文档3、高性能,只需要一套语句,就可以从Elasticsearch得到分析结果(无需在客户端自己去实现分析逻辑)集合的分类Agg...
2020-02-27 19:24:54
976
转载 mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效)。CREATE TABLE `mygoods` ( `goods_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cat_id` int(11) NOT NULL DEFAULT...
2020-02-27 18:13:03
1153
原创 elasticsearch7.6文档解析-avg聚合
文档格式如下:{ "account_number": 1, "balance": 39225, "firstname": "Amber", "lastname": "Duke", ...
2020-02-27 16:25:53
1304
原创 php+mysql存储html文件
$fileContent = trim($fileContent); $fileContent=$queueList->characet($fileContent); $fileContent = addslashes(htmlspecialchars($fileContent,ENT_QU...
2020-02-26 13:55:19
1463
转载 php-rdkafka手动提交偏移量
在项目中使用php-rdkafka的高级消费者时,发现设置了:$topicConf->set('enable.auto.commit', 'false');没有效果,还是会自动提交offset,查了各种资料,正确的应该是这样设置:$conf->set('enable.auto.commit', 'false');相关说明见文档:https://github.com/ed...
2020-02-24 14:28:53
2178
转载 New state of 'nil' is invalid
背景:docker terminal执行jar程序的时候,报New state of 'nil' is invalid的错误,但是docker ps发现docker还是up状态的。原因:docker在windows上某些字符无法显示,比如我程序中出现“【】”,我改成[]就不再报这个错误了...
2020-02-24 13:58:21
2176
1
转载 windows环境下给PHP增加rdkafka扩展
因为工作需要kafka作为消息中间件,所以在本地开发环境进行测试的时候需要给PHP添加rdkafka扩展,使用PHP作为producer或者cosumer,在此纪录一下rdkafka的安装过程。扩展下载地址:http://pecl.php.net/package/rdkafka根据自身PHP版本选择相应的包,使用phpinfo()函数可以很方便的查看自己PHP版本:我的是7.1.5...
2020-02-24 13:37:09
1525
原创 sarama-cluster消费者运行时报panic: non-positive interval for NewTicker
笔者是go新手,照着例子运行customer代码如下:package mainimport ( _"flag" "fmt" "log" "os" "os/signal" _"syscall" "github.com/Shopify/sarama" "github.com/bsm/sarama-cluster")var ( groupId = "g3" b...
2020-02-23 19:53:05
5704
9
转载 记一次golang定时器引发的诡异错误
作为一只在9127工作制下摸鱼的程序猿,周六自然是愉快的加班了。一早上除了一位新同学在我们的“敏捷迭代”下错删了接口之外没什么大事。临近中午,突然隔壁组大佬找到我,表示有个go语言服务偶现panic的问题需要求助。了解了一下,原来是他们组的一个妹子(小姐姐??)写的代码的问题。okok,既然大佬都来找我了,帮忙解决下顺便……再好不过了。咳咳,进入正题,将问题场景的代码先放出来: va...
2020-02-23 19:18:19
1828
转载 Golang如何正确的停止Ticker
Golang可以利用time包的Ticker实现定时器的作用,最近使用Ticker时,发现调用Ticker的Stop方法无法正确的停止Ticker,协程会阻塞在等待Ticker的C通道处,精简后的代码如下:func UseTickerWrong() *time.Ticker { ticker := time.NewTicker(5 * time.Second) go func(...
2020-02-23 19:10:22
2111
转载 [Golang] timer可能造成的内存泄漏
背景前两天,跟一位学长交流Golang;然后,他突然问我:你知道timer可能造成内存泄漏嘛? 当时,甚是一脸懵逼,毕竟之前写的Agent测了好久,都没发现这个问题啊。今天,就索性了解了下。这里先说下结论,timer的误用可能造成某些等待timer的Goroutine无法正常退出,导致资源无法释放;(ps. 虽然的确算是内存泄漏,但是对于我这种写C出身的人来说,感觉还是怪怪的)接下来进入正题...
2020-02-23 19:07:46
1560
转载 Golang 定时器timer和ticker
两种类型的定时器:ticker和timer。两者有什么区别呢?请看如下代码:tickerpackage mainimport ( "fmt" "time")func main() { d := time.Duration(time.Second*2) t := time.NewTicker(d) ...
2020-02-23 19:04:23
1196
转载 GO标准库flag
Go语言内置的flag包实现了命令行参数的解析。os.Argsos.Args是一个[]string类型。获取命令参数示例:func main() { if len(os.Args) > 0{ for index,args := range os.Args{ fmt.Printf("args[%d]=%v\n", index, ...
2020-02-22 15:57:30
784
转载 Linux cron输出导致僵尸进程案例及解决
登录到主机发现服务器上有近40个名称为[sh] <defunct>的进程Ps –ef带进程号查发现是僵尸进程是发送邮件的/usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t进程杀掉这些僵尸进程kill -9 `ps -ef|grep def|awk '{print $3}'`后进行分析如下:首先...
2020-02-22 13:20:48
1675
转载 go build 不同系统下的可执行文件
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。1、Mac下编译Linux, Windows平台的64位可执行程序:$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go2、Lin...
2020-02-22 09:22:25
1002
转载 golang 将kafka的offset置为最新
需要解决:当需要用同一个group_id去消费kafka的partition时,如果程序down掉,可能存在已经消费的数据尚未提交的可能,此时会造成重复消费的问题,且在重启这段时间会产生新的数据,重启这段时间的kafka消息不想再消费。采用方案:1、创建consumer时将offset设置为最新import ( "github.com/Shopify/sarama" clus...
2020-02-21 14:45:38
4233
转载 kafka的go版本api介绍及使用示例
一、概述go语言版本的kafaka API,使用sarama和sarama-cluster包,支持offset追踪。生产和消费的过程,都是通过设置一个配置结构体开始的。并发量小时,可以用同步生产者,但是并发量大时,必须使用异步生产者。1.1 安装依赖库saramago get github.com/Shopify/sarama该库要求kafka版本在0.8及以上,支持kafka定义的h...
2020-02-21 14:33:05
1763
原创 docker 启动kafka宿主机无法访问
先看我启动命令:docker run -e TZ="Asia/Shanghai" --privileged -itd -h single.com -p 127.0.0.1:9092:9092 -p 127.0.0.1:2181:2181 -v D:\soft:/var/soft --name single.com test/kaf:v1 /usr/sbin/init我这里是给了域名的....
2020-02-21 14:12:10
2920
转载 kafka的go版本api使用
概述go语言版本的kafakaAPI准备golangsarama简单使用生产和消费的过程都是通过一个配置开始的.生产者//设置配置 config := sarama.NewConfig() //等待服务器所有副本都保存成功后的响应 config.Producer.RequiredAcks = sarama.WaitForAll //随机的分区类型...
2020-02-20 18:54:23
1166
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人