自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

allen的博客

allen的博客

  • 博客(433)
  • 资源 (4)
  • 收藏
  • 关注

转载 systemd 下开机启动的优化,删除无用的systemd服务

一般情况下,常规用途的Linux发行版在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,例如蓝牙bluetooth、Avahi、 调制解调管理器ModemManager、ppp-dns(LCTT 译注:此处作者笔误 ppp-dns 应该为 pppd-dns) 等服务进程,这些都是什么东西?用于哪里,有何功能?Systemd 提供了许多很好的工具用于查看系统启动情况,也可以控制在系统启动时运行什么。在这篇文章中,我将说明在 Systemd 类发行版中如何关闭一些令人讨厌的进程。查看开..

2022-05-25 11:10:42 864 1

转载 Golang中的深拷贝与浅拷贝

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

2022-05-22 22:35:53 1083

转载 Go使用标准库net/http发送Post请求

发送Post请求net/http发送Post请求很容易,下面的代码我们和Get请求一样,把响应的内容的信息打印出来了,细心的朋友可能会发现,在参数传递、和结果解析时用了三种不同的方式,我们将在后面进行解析。示例代码package mainimport ( "bytes" "fmt" "io/ioutil" "net/http" "reflect" "strings")func main() { resp, err := http.Post("http://httpbin

2022-04-10 15:37:53 684

转载 Go使用标准库net/http发送Get请求

发送Get请求使用Golang发送get请求很容易,我们还是使用http://httpbin.org作为服务端来进行演示。package mainimport ( "bytes" "fmt" "log" "net/http" "net/url" "reflect")func main() { resp, err := http.Get("http://httpbin.org/get?name=Detector") if err != nil { log.Printl

2022-04-10 15:36:40 791

转载 Go中struct转map的三种方式

struct转map使用json模块直接使用json.Marshal方法来强制转化struct。参考代码:func JSONMethod(content interface{}) map[string]interface{} { var name map[string]interface{} if marshalContent, err := json.Marshal(content); err != nil { fmt.Println(err) } else { d :=

2022-04-10 15:15:01 1844

转载 Go 语言里怎么正确实现枚举?答案藏着官方的源码里

在编程领域里,枚举是用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个实体对象的状态机来说,它通常与这个对象在数据库里对应记录的标识状态的字段值相对应。在刚开始学编程的时候,你一定写过,至少见过直接使用魔术数字进行判断的代码。啥叫魔术数字呢,举个例子,要置顶一个文章的时候先判断文章是不是已发布状态。if (article.state == 2) { // state 2 代表文章已发布}假如我们的代码里没有注释,或者等我们项目的代码里充斥着这些魔术数字

2022-04-10 14:58:26 157 1

原创 Go编码JSON时忽略掉指定字段

并不是所有数据我们都期望编码到 JSON中暴露给外部接口的,所以针对一些敏感的字段我们往往希望将其从编码后的 JSON数据中忽略掉。那么上面也说了只有导出的结构体成员才会被编码,有的同学会问我直接用小写的字段名不行吗?可是为了未导出字段只能在包内访问,像这种携带内部敏感数据的往往都是应用的基础数据,由项目的公共包来提供的。那么怎么技能维持字段的导出性又能让其在 JSON数据中被忽略掉呢? 还是使用结构体的标签进行注解,比如下面定义的结构体,可以把身份证 IdCard字段在 JSON数据中去掉:type

2022-04-10 14:51:17 1016

原创 Go解决空切片在JSON里被编码成null

因为切片的零值为 nil,无指向内存的地址,所以当以这种形式定义 varf[]int初始化 slice后,在JSON中将其编码为 null,如果想在 JSON 中将空 slice 编码为 []则需用make初始化 slice为其分配内存地址:运行下面的例子可以看出两点的区别:var f1 []stringf2 := make([]string, 0)json1, _ := json.Marshal(Person{f1})json2, _ := json.Marshal(Person{f2}

2022-04-10 14:50:38 1342

原创 Go自定义JSON键名

我们先从最常见的一个问题说,首先在Go 程序中要将数据编码成JSON 格式时通常我们会先定义结构体类型,将数据存放到结构体变量中。 type Address struct { Type string City string Country string } type CreditCard struct { FirstName string LastName string Addres

2022-04-10 14:41:50 174

原创 Go接口定义与实现

package interfacetype Programmer interface{ WriteHelloWorld() string}type GoProgrammer struct{}func (go *GoProgrammer) WriteHelloWorld() string { return "fmt.Println(\"Hello World\")"}func TestClient(t *testing.T) { var p Programmer.

2022-03-26 16:27:27 720

原创 Go语言统计函数运行时长

func timeSpend(inner func(op int) int) func(op int) int { return func(n int) int { start := time.Now() ret := inner(n) fmt.Println("time spend:", time.Since(start).Seconds()) return ret }}

2022-03-26 15:51:15 269

原创 MacBook M1 提示“您没有权限来打开应用程序‘xxx’” 解决办法

背景我的电脑目前是:m1芯片,macOS Big Sur 11.4安装vscode提示:您没有权限来打开应用程序解决方法在网上搜索了很多方法,发布分都已经过时,不能使用,下面贴出来一份我使用的方法:sudo xattr -rd com.apple.quarantine /Applications/Visual\ Studio\ Code.app步骤:1、在终端输入命令:注意最后留一个空格2、 将下载好的软件复制到/Applications目录,然后用鼠标将软件.

2022-03-20 15:03:09 5288

原创 Docker 清理命令集锦

杀死所有正在运行的容器复制代码代码如下:docker kill $(docker ps -a -q)删除所有已经停止的容器复制代码代码如下:docker rm $(docker ps -a -q)删除所有未打 dangling 标签的镜像复制代码代码如下:docker rmi $(docker imag

2022-03-19 16:32:39 140

原创 shell学习--变量

Shell 脚本Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。Shell 环境Shell 编程跟 java、ph...

2022-03-19 16:31:57 20

原创 Linux grep命令

Linux grep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。语法grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B...

2022-03-19 16:31:10 33

原创 算法--100盏灯问题

题目一间屋子里有100盏灯排成一行,按从左至右的顺序编号1、2、3、4、5…99、100,每盏灯都有一个开关,开始全部都关着,现有100个学生,1、第1个学生按了1的倍数的灯,也就说被按灯的编号为:1、2、3、4、5、6、7、8…99、100 2、第2个学生按了2的倍数的灯,也就说被按灯的编号为:2、4、6、8、10…98、100 3、第3个学生按了3的倍数的灯,也就说被按灯的编号为:3、6、9、12…99 4、以此类推… 100、第100个学生把100的倍数灯,,也就说被按灯的编号为:1

2022-03-19 16:12:40 258

原创 PHP底层的局部变量和全局变量的使用是如何实现的?

对于一个请求,任意时刻PHP都可以看到两个符号表(symbol_table和 active_symbol_table),其中前者用来维护全局变量。后者是一个指针,指向当前活动的变量符号表,当程序进入到某个函数中时,zend 就会为它分配一个符号表x同时将active_symbol_table指向a。通过这样的方式实现全局、局部变量的区分。先记录下这个问题的简单解释,后边再做研究。...

2022-03-17 22:45:01 346

原创 Go语言学习之Go特性(一)

从开发者的角度来看,go语言有很多让开发人员喜欢的特性。第一较之C语言的37个关键字,PHP的68个关键字,C++11多大84个关键字,Go语言只有区区25个关键字另外特别是对于一些特别复杂的任务,比如说并发编程、内存管理,Go语言都有内置的并发支持以及垃圾回收机制。第二呢当然是高效,Go语言作为一种编译的静态语言类型语言,尽管支持垃圾回收机制,但是你仍然可以使用指针去直接访问内存。第三是生产力,Go语言有简介清晰的依赖管理,以及独特的接口类型设计,甚至对一些编程方式的约束,比如支持复合而不支持

2022-03-17 22:42:06 114

原创 Go语言之共享内存并发机制示例

func main() { var mut sync.Mutex var wg sync.WaitGroup counter := 0 for i := 0; i < 5000; i++ { wg.Add(1) go func() { defer func() { mut.Unlock() }() mut.Lock() counter++ wg.Done() }() } wg.Wait() t.Logf("count = %d",.

2022-03-17 22:41:30 298

原创 Grafana + prometheus在Centos搭建服务器监控系统(三)--配置监控Nginx

部署并配置nginx-module-vts参考我之前的文章:Linux下Nginx配置nginx-module-vts_allen的博客-CSDN博客配置nginx-vts-exporterexporter会收集nginx性能指标的JSON格式数据,并汇总后暴露监控接口给Prometheus。cd /data/programwget -c https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/n

2022-03-17 21:45:28 3427

原创 面试题:PHP字符串类型隐式转换

代码如下:$arr = [ '1' => 'c', 'a' => 'a', 1 => 1, 2, 2 => 'b'];return $arr;输出结果:原因:对于’123’这样的字符串,zend会转换为其整数形 式。$arr[‘123’]和$arr[123]是等价的...

2022-03-17 21:44:43 137

原创 Mysql随机查询N条数据效率最快的查询方法总结

使用到的Mysql函数有:FLOOR(x):返回小于或等于 x 的最大整数RAND():返回 0 到 1 的随机数 ROUND(x):返回离 x 最近的整数MAX(expression):返回字段 expression 中的最大值MIN(expression):返回字段 expression 中的最小值以下方法测试耗时由小到大1、SELECT *FROM `t_topic`WHERE id >= ( SELECT

2022-03-17 19:50:32 1152

原创 Redis的事务和watch命令

redis的事务使用Redis管理数据,理解如何使用事务存储键值对数据很重要。Redis事务与RDMMS事务有些类似,但也有差异。Redis主要通过几个命令有效管理事务。严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。Redis中的事务(transaction)是一组命令的集合。Redis事务命令主要包括 WATCH, EXEC, DISCARD, MULTI。这些命令构成一组命令块,确保在一个步骤中全部执行。首先,它们确保事务中的命令将按顺序执行并序列化。

2022-03-13 22:44:32 246

原创 Linux下Nginx配置nginx-module-vts

用Prometheus进行nginx的监控可以自动的对相关server_name和upstream进行监控,你也可以自定义Prometheus的数据标签,实现对不同机房和不同项目的nginx进行监控。监控Nginx主要用到以下三个模块:nginx-module-vts:Nginx的监控模块,能够提供JSON格式的数据产出。nginx-vts-exporter:主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。Prometheus:监控Nginx-vt

2022-03-13 20:57:58 4252

原创 Grafana + prometheus搭建服务器监控系统(二)---使用alertmanger进行警报管理

一、Prometheus的警报Prometheus中的警报分为两部分,首先由prometheus服务器根据警报规则将警报发送到alertmanager,然后alertmanager管理这些警报,包括静音(silencing)、抑制(inhibition)、聚合(aggregation)和通知(电子邮件、聊天平台等)。设置警报和通知的主要步骤如下:设置和配置alertmanager 配置alertmanager和prometheus对话 在prometheus中创建警报规则二、alertm..

2022-03-13 15:56:17 2919

原创 Grafana + prometheus在Centos搭建服务器监控系统(一)---安装、配置

一、Grafana介绍Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式; 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等; 通知提醒:以可视方式定义最重要指标的警报规则,

2022-03-13 15:42:51 4249

原创 Docker查看容器的IP地址

查看Docker的底层信息。docker inspect会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息docker inspect NAMES # 查看容器所有状态信息;docker inspect --format='{{.NetworkSettings.IPAddress}}' ID/NAMES# 查看 容器ip 地址docker inspect --format '{{.Name}} {{.State.Running}}' NAMES# 容器运行状态.

2022-03-13 12:02:47 3803

原创 M1芯片Mac xxx.app 已损坏,无法打开,你应该将它移到废纸篓/打不开等解决方法

如果在打开app时出现如上提示,请依照以下步骤排除解决:①开启【任何来源】选项但是 macOS 默认是隐藏了这个设置的,需要用户手动通过终端执行命令行代码来开启。先打开 【系统偏好设置】 -> 【安全与隐私】 -> 【通用】 选项卡,检查是否已经启用了【任何来源】选项。如果没有这个选项,复制以下面的命令:sudo spctl --master-disable打开【终端】:输入上边命令,按照提示输入密码即可。操作完毕后,您..

2022-03-12 17:51:44 1005

原创 docker分容器安装lnmp:SQLSTATE[HY000] [2002] Connection refused

使用docker搭建lnmp环境,使用的是分容器的搭建方案框架使用laravel,想要连接数据MySQL,一直显示“SQLSTATE[HY000] [2002] Connection refused”数据库配置host填的是localhost,后面改成了127.0.0.1,都是连接不了还以为是数据库用户权限问题,新建了一个用户,刷新了权限,结果还是不行想了好久,原来都是分容器的问题,由于采用了分容器的搭建方案,在php的容器内连接127.0.0.1或者localhost,肯定是连接不了数据库MySQ

2022-03-07 17:48:39 306

原创 浅析 Laravel 官方文档推荐的 Nginx 配置

浅析 Nginx 配置,方便起见,我在注释中使用[]包裹引用配置中的值。server { # 监听 HTTP 协议默认的 [80] 端口。 listen 80; # 绑定主机名 [example.com]。 server_name example.com; # 服务器站点根目录 [/example.com/public]。 root /example.com/public; # 添加几条有关安全的响应头;与 Google+ 的配置类似,详情..

2022-03-07 17:34:08 437

转载 几种性能测试工具的总结

我们经常会谈论性能、并发等问题,但是衡量性能不是说写段代码循环几百次这么简单。最近从项目上的同事了解到了代码化的测试性能测试工具 k6,以及结合之前用过的Java 微基准测试 (JMH)、AB (Apache Benchmark) 测试、Jmeter 做一下总结。谈性能,实际上结合实际的业务背景、网络条件、测试数据的选择等因素影响非常大,单纯的谈 QPS 等数据意义不大。这里介绍的几个工具刚好能满足平时开发工作中不同场景下衡量性能的需求,因此整理出来。Java 微基准测试 (JMH) 可以用.

2022-03-06 17:08:13 377

原创 【Go面试】Go面试题总结

Go面试题总结

2022-03-05 23:31:34 966

原创 Go语言中比较字符串比较的几种方法

在go语言中比较字符串相等的方式有如下三种:== 直接比较,区分大小写 strings.Compare(a,b) 该函数返回值为int, 0 表示两数相等,1 表示a>b, -1 表示a<b。 区分大小写 strings.EqualFold(a,b) 直接返回是否相等,不区分大小写。...

2022-03-05 15:56:21 949

原创 Mac下好用的终端SSH软件:Royal TSX的入门使用指导

介绍一款Mac下免费的终端软件:Royal TSX下载地址:Royal Apps使用:1.安装插件点击桌面左上角的Royal TSX,点击Preferences,出现如下窗口,然后在左侧列表中找到Plugins点击即出现安装插件的窗口。找到需要的Terminal以及File Transfer插件安装后,点击Apply & Close,然后重启Royal TSX插件即可生效。2.新建DocumentRoyal TSX是以Document的形式进行远程主机管理的,所以在建立远

2022-03-04 17:15:34 1237 3

原创 MacBook Pro M1外接显示器模糊解决之分辨率调节

本文主要内入如题所述,主要是解决MacBook Pro M1的外界显示器模糊,分辨率调节。步骤:1.打开系统偏好设置2.选择显示器3.找到要分屏的显示器设置窗口,按住option键显示出当前显示器所支持的所有分辨率列表4.选择一个合适的分辨率即可。...

2022-03-04 15:40:17 10022 1

原创 SQL语言的分类:DQL、DML、DDL、DCL

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。1、数据库查询语言DQL(Structure Query Language)数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>2、数据操纵语言DML(Data Manipulation Language statements)数据操纵

2022-03-03 17:53:02 233

原创 2022年2月28日:失眠

昨晚失眠睡不着,数羊,1,2,3,4......100,101,102,103......555,556,557,558,558,558,558,558,558......558天,我们在一起的日子。

2022-03-01 14:30:06 148

转载 停止盲目使用微服务

为什么大多数公司最好要避免使用微服务呢?微服务看起来是一种很好的解决方案。从理论上讲,微服务可以加快开发速度,同时允许你独立扩展应用程序的不同部分。但在现实中,微服务是有隐藏成本的。也就是说,我认为,在没有亲自构建微服务之前,你不可能理解它们有多复杂。下面是我在构建微服务(有时是失败的)时所学到的经验心得。管理数据是一场噩梦保持微服务间的数据同步可能是一项挑战。每个微服务都有一个数据库,这是推荐的模式。它允许松散的耦合,并且可以让特定服务团队在无需放慢速度协作共享代码的情况下,独立地工作。但

2022-03-01 14:26:04 30

原创 Error: spawn node_modules\webpack\bin\webpack.js ENOENT解决方法

执行npm run dev的时候报如下错误> dev> npm run development> development> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.c

2022-02-24 16:36:47 1234

原创 laravel 使用PhpStorm 代码提示

安装barryvdh/laravel-ide-helperlaravel代码提示 composer require barryvdh/laravel-ide-helper # add to config/app.php 'providers'数组添加 Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, 使用 php artisan ide-helper:generate - 为Facades生成P...

2022-02-24 00:58:33 296

navicat150_mysql.rar

windows端数据库mysql操作软件

2021-05-12

等保三级测评参考文档

国家信息安全等保三级测评认证参考文档,含安全管理制度、安全管理机构、人员安全管理、系统建设管理、系统运维管理等方面文档。能给参加等保三级测评认证的企业提供文档方面的参考。

2020-09-10

中国省市县数据sql文件|data_city.zip

中国省市县三级数据sql文件,包含省市县所属的行政编码,三级对应关系,最新资源。同步更新国家官方数据,有一说一,资源描述50字够了吗?

2020-09-10

php_redis-4.0.2-7.0-ts-vc14-x64

php_redis-4.0.2-7.0-ts-vc14-x64,php_redis-4.0.2-7.0-ts-vc14-x64

2018-05-31

空空如也

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

TA关注的人

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