欢迎光临
我们一直在努力

admin的文章

php

通过Twemproxy提升PHP/Redis的性能

admin阅读(1432)评论(0)赞(2)

Twemproxy 可以说是最古老的 Redis 代理软件了,一般来说,引入代理后性能会比没有引入代理时低一些,毕竟代理会导致一些额外的性能损耗,可是 Twemproxy 却会提升性能, 这主要得益于它的 Pipelining 功能可以实现...

golang

golang ---rune与byte

admin阅读(1291)评论(0)赞(1)

golang内置类型有rune类型和byte类型。 rune类型的底层类型是int32类型,而byte类型的底层类型是int8类型,这决定了rune能比byte表达更多的数。 在unicode中,一个中文占两个字节,utf-8中一个中文占三...

Go 语言十年而立,Go2 蓄势待发-IT技术资讯
golang

Go 语言十年而立,Go2 蓄势待发

admin阅读(1311)评论(0)赞(2)

在21世纪的第一个十年,计算机在中国大陆才逐渐开始普及,高校的计算机相关专业也逐渐变得热门。当时学校主要以C/C++和Java语言学习为主,而这些语言大多是上个世纪90年代或更早诞生的,因此这些计算机领域的理论知识或编程语言仿佛是上帝创世纪...

golang

golang fmt.Printf

admin阅读(956)评论(0)赞(0)

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了...

golang

在Golang的HTTP请求中共享数据

admin阅读(1128)评论(0)赞(3)

首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 h...

golang

To panic or not to panic

admin阅读(1174)评论(0)赞(1)

大家都知道 Golang 推荐的错误处理的方式是使用 error,这主要得益于 Golang 方法可以返回多个值,我们可以很自然的用最后一个值来表示是否有错误,这一点是其它很多编程语言所不具备的,不过这多少让那些习惯了 exception ...

golang

如何优化Golang中重复的错误处理

admin阅读(1024)评论(0)赞(0)

Golang 错误处理最让人头疼的问题就是代码里充斥着「if err != nil」,它们破坏了代码的可读性,本文收集了几个例子,让大家明白如何优化此类问题。   让我们看看 Errors are values 中提到的一个 io...

Golang之Context的迷思-IT技术资讯
golang

Golang之Context的迷思

admin阅读(1729)评论(0)赞(1)

对我而言,Golang 中的 Context 一直是谜一样的存在,如果你还不了解它,建议阅读「快速掌握 Golang context 包,简单示例」,本文主要讨论一些我曾经的疑问。   Context 到底是干什么的? 如果你从没...

聊聊AES-IT技术资讯
安全

聊聊AES

admin阅读(1166)评论(0)赞(1)

说起加密,通常分为对称加密和非对称加密,所谓对称加密中的对称,指的是加密和解密使用的是同一个密钥,如此说来什么是非对称就不用我多做解释了。对称加密相对于非对称加密而言,优点是速度快,缺点是安全性相对低一点,不过只要能保证密钥不泄露,其安全性...

关于手机App的Https抓包-IT技术资讯
tcpdump

关于手机App的Https抓包

admin阅读(1219)评论(0)赞(0)

我喜欢用 Mitmproxy 来处理手机 App 抓包之类的工作,本来用它来抓 Https 包是很容易的一件事,只要设置好代理,浏览 mitm.it 按提示安装证书即可,可是当 Android 版本升级到 7 以后,此方法就失效了,为什么呢...

WRK:一个可编程的HTTP性能测试工具-IT技术资讯
Lua

WRK:一个可编程的HTTP性能测试工具

admin阅读(1474)评论(0)赞(3)

同 ab 这种单线程 HTTP 性能测试工具相比,wrk 是一个足够现代化的 HTTP 性能测试工具,最重要的特性是:它是可编程的,借助内嵌 lua,我们可以控制测试的全过程。   关于 wrk 中 lua 扩展的数据结构,可以参...

SQL

数据库ID生成器基准测试

admin阅读(1057)评论(0)赞(4)

在说明如何基准测试之前,我想聊聊我为什么要做这个事儿,话说最近做某后台的时候需要一个 ID 生成器,我不太想用 snowflake 等复杂的解决方案,也不太想用 redis 来实现,因为我手头只有 mysql,所以我琢磨着就用 mysql ...

如何查询同时包含多个指定标签的文章-IT技术资讯
SQL

如何查询同时包含多个指定标签的文章

admin阅读(3219)评论(0)赞(2)

文章和标签是典型的多对多的关系,也就是说每一篇文章都可以包含多个标签,如图: 每一篇文章都可以包含多个标签 下面问题来了:如何查询 tag_id 同时包含 1、2、3 的 article_id?此问题看似简单,实际上也非常简单,本来是一道送...

php

如何使用PHP解析XML大文件

admin阅读(1112)评论(0)赞(1)

如果使用 PHP 解析 XML 的话,那么常见的选择有如下几种:DOM、SimpleXML、XMLReader。如果要解析 XML 大文件的话,那么首先要排除的是 DOM,因为使用 DOM 的话,需要把整个文件全部加载才能解析,效率堪忧,相...

OpenResty

手把手教你用OpenResty里的FFI

admin阅读(1604)评论(0)赞(2)

了解 OpenResty 的人应该知道,OpenResty 原本的 API 都是基于 C 实现的,不过在新版里都已经改成了基于 FFI 实现的,为什么这么做?因为 FFI 在效率上更有优势,除此以外,FFI 还有一个优点是可以很便利的和 C...

Jvm 内存泄露与修复-IT技术资讯
Java

Jvm 内存泄露与修复

admin阅读(1175)评论(0)赞(1)

第一步,使用jps命令获取出问题jvm进程的进程ID 使用jps -l -m获取到当前jvm进程的pid,通过上述命令获取到了服务的进程号:427726 (此处假设为这个)  jps命令 jps(JVM Process Status Too...

golang

在Go语言项目中使用Zap日志库

admin阅读(1393)评论(0)赞(2)

本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档。 在Go语言项目中使用Uber-go的Zap Logger 介绍 在许多Go语言项目中,...

go操作etcd-IT技术资讯
Etcd

go操作etcd

admin阅读(1143)评论(0)赞(1)

etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现,本文主要介绍etcd的安装和使用。 etcd etcd介绍 etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,...

golang

Go标准库Context

admin阅读(1090)评论(0)赞(1)

在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一...

ElasticSearch

Elasticsearch

admin阅读(1338)评论(0)赞(0)

本文简单介绍了ES、Kibana和Go语言操作ES。 Elasticsearch 介绍 Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文...

golang

第三方日志库logrus使用

admin阅读(1457)评论(0)赞(1)

日志是程序中必不可少的一个环节,由于Go语言内置的日志库功能比较简洁,我们在实际开发中通常会选择使用第三方的日志库来进行开发。本文介绍了logrus这个日志库的基本使用。 logrus介绍 Logrus是Go(golang)的结构化logg...

Go语言基础之单元测试-IT技术资讯
golang

Go语言基础之单元测试

admin阅读(1138)评论(0)赞(1)

不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分。 这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。 go test工具 Go语言中...

OpenResty

如何扩展一个OpenResty模块

admin阅读(1630)评论(0)赞(1)

因为 Lua 本身并没有继承之类的语法,所以我们不能通过 OOP 的套路来扩展模块,不过实际上对于 Lua 来说,扩展一个模块有更简单的方法,下面我们以 lua-resty-string 模块中的 aes 加解密功能为例子来说明一下。 &n...

gRPC快速入门-IT技术资讯
golang

gRPC快速入门

admin阅读(1266)评论(0)赞(0)

RPC算是近些年比较火热的概念了,随着微服务架构的兴起,RPC的应用越来越广泛。本文介绍了RPC和gRPC的相关概念,并且通过详细的代码示例介绍了gRPC的基本使用。 gRPC RPC是什么 在分布式计算,远程过程调用(英语:Remote ...

golang

GORM入门指南

admin阅读(1331)评论(0)赞(1)

gorm是一个使用Go语言编写的ORM框架。它文档齐全,对开发者友好,支持主流数据库。 gorm介绍 Github GORM 中文官方网站内含十分齐全的中文文档,有了它你甚至不需要再继续向下阅读本文。 安装 go get -u github...

golang

Go语言中的单例模式

admin阅读(1064)评论(0)赞(2)

在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python、PHP、Ruby)转向Go语言的跨语言学习者。 Go语言太容易实现并发了,以至于它在很多地方被不正确的使用了。 Go语言中的单例模式 在过去的几年中,Go语言的...