
互联网
文章平均质量分 87
无风的雨
这个作者很懒,什么都没留下…
展开
-
Go语言sync.Map
Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。原创 2022-10-27 21:09:50 · 2644 阅读 · 0 评论 -
golang之数据验证validator
前言在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。原理将验证规则写在struct对字段tag里,再通过反射(reflect)获取struct的tag,实现数据验证。安装go get github.com/go-playground/validator/v10示例package mainimport ( "fmt"...原创 2020-05-04 15:50:44 · 22629 阅读 · 7 评论 -
go之web框架gin
前言近来计划用go做一个项目,在选哪个web框架上比较纠结。go的web框架有很多,近几年流行的以性能见长的有gin、iris、echo等,经过查阅资料,及咨询从事go开发的同仁,最终选择用gin框架做。主要基于以下几点:1、人多占优(无论从使用人数还是参与维护的人数),这一点很重要。用的人多,不能证明他很好,但起码不差。维护的人多有利于版本的迭代,不至于给自己将来挖坑。2、文档支持相对比较...原创 2018-09-27 23:36:07 · 2616 阅读 · 0 评论 -
centos7 下使用Supervisor监控 gin服务
在实际项目运行的时候,要考虑万一服务出现异常挂了怎么办,这个时候需要一个监控系统。其中,Supervisor 是个不错选择。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。安装 Supervisor yum -y install supervisor配置Supervisor[prog...原创 2018-10-10 15:13:05 · 1063 阅读 · 0 评论 -
golang开发笔记
golang 开发笔记1.Go环境配置1.1 go安装1.2 目录结构1.3 Go命令1.4 工具2 语言基础2.1 hello word!项目地址:https://github.com/guyan0319/golang_development_notes参考资料:https://golang.org/doc/...原创 2018-11-23 11:13:11 · 843 阅读 · 0 评论 -
go 类型转换
数据类型转换需要引入包 strconv1、字符串转整数string 转 intint,err:=strconv.Atoi(string) string 转int64int64, err := strconv.ParseInt(string, 10, 64) 10代表10进制,可以设置2 进制到 36 进制64代表int64,可以指定整数类型(0:int、8:int8、16:in...原创 2018-11-24 17:04:47 · 1336 阅读 · 0 评论 -
go json处理
json 处理需要引入"encoding/json"包json解析到数组jsonStr := "{\"a\":\"test\",\"b\":\"testb\"}"var dat map[string]stringerr := json.Unmarshal([]byte(jso原创 2018-11-26 11:41:20 · 428 阅读 · 0 评论 -
go 操作mysql
go-sql-driver/mysqlGo使用SQL与类SQL数据库的惯例是通过标准库database/sql。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。Go本身不提供具体数据库驱动,只提供驱动接口和管理,要使用数据库,除了database/sql包本身,还需要引入想使用的特定数据库驱动。现推荐一个我在项目中用到的驱动:https://github.com/go...原创 2018-11-27 19:21:20 · 385 阅读 · 2 评论 -
Golang 获取GET、POST参数及处理上传多个文件
http.request的三个属性Form、PostForm、MultipartForm:Form:存储了post、put和get参数,在使用之前需要调用ParseForm方法。PostForm:存储了post、put参数,在使用之前需要调用ParseForm方法。MultipartForm:存储了包含了文件上传的表单的post参数,在使用前需要调用ParseMultipartForm方法...原创 2018-12-01 16:06:06 · 18912 阅读 · 2 评论 -
Go 如何使用session
Go 语言实现操作session不像cookie那样,net/http包里有现成函数可以很方便的使用,一些web服务用到session的话,没办法地自己敲代码实现。Go具体实现session:服务端可以通过内存、redis、数据库等存储session数据(本例只有内存)。通过cookie将唯一SessionID发送到客户端session.gopackage sessionimpo...原创 2018-12-07 16:52:29 · 12486 阅读 · 5 评论 -
Golang 读、写文件
文件的读写是编程语言的常见操作之一,这里将Goang 读取文件的相关操作。读取文件读取文件有三种方式:将文件整个读入内存按字节数读取按行读取具体实现如下:1、将文件整个读入内存package mainimport ( "os" "io/ioutil" "fmt")func main() { file,原创 2019-01-16 20:38:26 · 1643 阅读 · 0 评论 -
Golang 正则表达式(regexp)
Go内置了(regexp包)对正则表达式的支持,这里是一般的正则表达式常规用法的例子。示例: package mainimport ( "bytes" "fmt" "regexp")func main() { //是否匹配字符串 // .匹配任意一个字符 ,*匹配零个或多个 ,优先匹配更多(贪婪) match, _ := regexp.MatchString(&quo原创 2019-02-22 10:10:35 · 15762 阅读 · 2 评论 -
centos7 配置gitlab自动部署
前言 gitlab安装,移步 gitlab安装 利用gitlab的webhook(钩子)调用外部url可以实现代码自动部署,本例通过PHP程序实现代i码自动部署,也可以通过其他方式。例如:node.js、jenkins(这种方式比较推荐的,后续有时间补上)等。添加项目test 点击 new project 填写相关信息权限等级分三种:Private 私有的,只有你自己或...原创 2018-09-07 14:40:19 · 1751 阅读 · 0 评论 -
进程 线程 协程的相关理解
一、进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。组成进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text...原创 2018-03-02 17:19:58 · 927 阅读 · 1 评论 -
laravel5.6 安装实例
一、服务器需求请确保您的服务器满足下面的要求:PHP >= 7.1.3 OpenSSL PHP PHP PDO 扩展 PHP Mbstring 扩展 PHP Tokenizer 扩展 PHP XML 扩展 PHP Ctype 扩展PHP JSON 扩展 如果是开发环境,Laravel 官方推荐Homestead ,如果只是学习的话, Mac 系统推荐使用 Val...原创 2018-03-15 23:01:06 · 4809 阅读 · 3 评论 -
centos7 ssh无密登录
主机 a 192.168.1.101 主机 b 192.168.1.102目标实现从a主机无需密码ssh 登录b主机。第一步在a主机上使用ssh-keygen生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下。 如果没有.ssh目录创建。mkdir .ssh生成一对rsa公私钥,一路回车即可cd .sshssh-keygen -t rsa生成如下文件将 id_rsa.pub原创 2017-10-31 18:55:27 · 740 阅读 · 1 评论 -
zabbix 3 之邮件报警配置
一、使用sendmail发邮件的配置yum -y install sendmailservice sendmail start测试echo "hello" | mail -s "subject" 1255415xxx@163.com 查看是否收到邮件,收到证明成功。配置Zabbix服务端外部邮箱,开通163邮箱的smtp服务 vim /etc/mail.rc设置 set from=xxxxxx原创 2017-12-07 14:53:32 · 336 阅读 · 0 评论 -
zabbix3.0 之短信报警配置
一、创建短信脚本1、查看zabbix_server配置文件zabbix_server.confvim /etc/zabbix/zabbix_server.conf找到AlertScriptsPath 2、创建脚本vim /usr/lib/zabbix/alertscripts/sendSms.sh内容#!/bin/bash# 脚本的日志文件LOGFILE="/tmp/SMS.log":>"原创 2017-12-07 12:01:22 · 6617 阅读 · 0 评论 -
互联网专业术语
Kafka 读“卡夫卡” Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具。 ZAB(ZooKeeper Atomic Broadcast)协议是专门为 ZooKeeper 设计的一种支持崩溃恢复的原子广播协议,与 Paxos 算...原创 2017-10-14 00:10:42 · 2224 阅读 · 0 评论 -
php 读取超大文件
PHP开发很多时候都要读取大文件,比如csv文件、text文件等。这些文件如果很大,比如10个G。这时,直接一次性把所有的内容读取到内存中计算不太现实。 遇到这种情况,往往觉得PHP太弱,实则不然。利用生成器(关键字yield)就能解决。 好了,上代码。<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017原创 2017-12-08 23:16:59 · 8014 阅读 · 0 评论 -
centos7 安装elk日志分析系统
架构图 Elasticsearch:搜索,提供分布式全文搜索引擎; Logstash: 日志收集,管理,存储; Kibana :日志的过滤web 展示; Filebeat:监控日志文件、转发,其已取代 logstash forwarder;一、准备工作 设置 yum源,采用官网提供的源 https://www.elastic.co/guide/en/elasticsearch/ref原创 2017-12-13 18:57:42 · 6146 阅读 · 1 评论 -
go语言开发环境搭建
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 学习Go一部分是兴趣,一部分是为了通过熟悉另一种语言来接触更多的应用场景。 安装步骤如下: 1、下载程序安装包: 安装程序 下载地址:https://golang.org/dl/ (墙内下原创 2018-01-02 23:29:00 · 12055 阅读 · 1 评论 -
50个小技巧提高PHP执行效率
1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号)。2、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。3、row[‘id′]的速度是ro转载 2018-01-18 13:40:50 · 257 阅读 · 0 评论 -
各个语言擅长的应用场景
1、C C语言的应用领域极为广泛,从操作系统、嵌入式领域、数据库、服务器、单片机、编译器,到Linux开发等,几乎每个领域都有其身影。对于新手来说,C语言起步难度较大,然而一旦稳定掌握即可前途无忧,拥有3-5年开发C语言经验的程序员月薪约为10-15k,而拥有5-10年工龄的码农,月薪可达到25K-50K。C语言是一门非常基础的“必学语言”,硬件开发行业对于优秀的C语言开发者将是不错的选择方向原创 2018-01-18 15:01:31 · 19155 阅读 · 3 评论 -
centos7 下 安装git 并实现自动部署
1、首先需要安装Git,可以使用yum源在线安装:yum install -y git2、创建一个git用户,用来运行git服务adduser gitpasswd git3、初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库mkdir /data/git -pcd /data/gitgit init --bare原创 2018-01-20 00:52:00 · 11636 阅读 · 0 评论 -
TCP/IP、Http、Socket 简单理解
一、 什么是TCP/IPTCP/IP是一组用于实现网络互连的通信协议。Internet网络体系结构以TCP/IP为核心。基于TCP/IP的参考模型将协议分成四个层次,它们分别是:网络访问层、网际互联层、传输层(主机到主机)、和应用层。ISO/OSI七层模型和TCP/IP模型的关系 简单的讲TCP/IP是一系列协议的集合,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数...原创 2018-02-28 23:30:47 · 7622 阅读 · 0 评论 -
CI整合YAR
1、在libraries目录下创建yar客户端接口程序 Yar.php<?php/*** yar 接口*/class Yar{ /** * 构造函数 * * @author 郭志强 * @return void * @throws Exception * @access public */ public原创 2017-10-13 23:29:39 · 408 阅读 · 0 评论