/images/avator.png

xingliuhua

不见其增,日有所长。

golang zaplog使用

zap zap使用 uber开源,zap可以在控制台、文件甚至发送数据到其他系统中,以此来记录日志。我们可以指定日志的级别,支持json结构化,方便

go值传递

参数值传递 函数传递的总是原来这个东西的一个副本,一副拷贝。比如我们传递一个int类型的参数,传递的其实是这个参数的一个副本;传递一个指针类型

hash一致性

普通hash 假如现在需要向4个redis存取图片,以图片的名字为key,value为图片实际存放的路径,我们可以取到key的hash值,然后

linux

linux主要目录 /bin 放二进制文件,都是可以运行的 /lib 存放系统最基本的动态连接共享库 /dev 放置外接设备,光盘u判断等,外接设备是不能直接使用的,需要

linux io模型

用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核

linux-压缩命令

gzip 压缩单个文件 gzip命令的使用方式很简单,命令后直接跟输入文件即可,gzip命令压缩后默认会覆盖源文件,生成以.gz为后缀的文件。 命令加-

nsq消息队列

nsq消息队列 NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 Features

rabbitMQ

简介 RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言的。 在我们

mysql分库分表分区

传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库。分区是数据库层面的。 分库 database不是文件,只起到nam

mysql索引原理

页 mysql中的页和操作系统的页有点类似,都是逻辑单位。都是假设数据在磁盘上是一起的,我们读取磁盘的时候一次读一页,而不是一条一条的数据来取

mysql explain

一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如

mysql 索引下推

索引下推(INDEX CONDITION PUSHDOWN,简称 ICP)是 MySQL 5.6 发布后针对扫描二级索引的一项优化改进。总的来说是通过把索引过滤条件下推到存储引擎,

mysql 锁

意向锁 当我们在对使用InnoDB存储引擎的表的某些记录加S锁之前,那就需要先在表级别加一个IS锁,当我们在对使用InnoDB存储引擎的表的某

mysql优化

分析效率 show status like “xxx” 查询一些msyql性能参数 connections: 连接数据库服务端的次数 slow_queries:慢查询次数 com_select:查询次数 com_

defer语句

defer语句 defer及defer函数的执行顺序分2步: 执行defer语句,计算函数的入参的值,并传递给函数,但不执行函数,而是将函数压入

认证鉴权

认证鉴权 HTTP协议是无状态的和Connection: keep-alive的区别: 无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端

godoc

生成文档 生成文档是很简单的,主要在package,方法等想要注释的地方写上注释即可。可以使用//或者/**/ 举例: // this is model comment package model import "fmt" // user struct comment

go fmt

布尔 %t 单词true或false 整型 %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法