Bink的博客

Thinking will not overcome fear but action will.

Go必备知识

本文会从以下几个方面阐述 数据结构算法 网络系统内核 数据库架构 Golang本身 Linux常用工具 计算机的主要组成就是算法和数据结构,所以开篇的重点就是数据结构和算法 一、数据结构 数据结构方面主要分为三方面:表、树、图 表 常见的表有:数组、单链表、双链表、循环链表、散列表 树 主要要解决的一个问题是:树的插入和查找的问题。 树主要有:B树、B-树、B...

缓存常见详解

从第一个缓存框架 Memcached 诞生以来,缓存就广泛地存在于互联网应用中。如果你的应用流量很小,那么使用缓存可能并不需要做多余的考虑。但如果你的应用流量达到了成百上千万,那么你就不得不考虑深层次的缓存问题:缓存穿透、缓存击穿与缓存雪崩。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,因为这个数据不存在,所以永远不会被缓存,所以每次请求都会去请求数据库。 例如我们请求一个 User...

Linux下开放端口 2019

Linux下开放端口 一、查看端口是否开放 1. 使用lsof 命令来查看端口是否开放 lsof -i:1025 //如果有显示说明已经开放了,如果没有显示说明没有开放 lsof(list open files)是一个列出当前系统打开文件的工具。 在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。 因为 lsof 需要访问核心内存和...

Mysql共享锁和排他锁的关系 2019

mysql共享锁和排他锁的关系 一、S锁和X锁:S锁和X锁都属于行数 二、意向锁:表锁,相互兼容,表明“某个事务持有了锁、或准备去持有锁” 1、意向锁的存在是为了协调行锁和表锁的关系,支持多粒度(表锁与行锁)的锁并存。 2: 1)意向共享锁(IS锁):事务在请求S锁前,要先获得IS锁 2)意向排他锁(IX锁):事务在请求X锁前,要先获得IX锁 3、例子:事务A修改user表的记...

Supervisor 常见错误集合

Supervisor常见错误集合 1、日志权限错误 IOError: [Errno 13] Permission denied: '/var/log/supervisor/supervisord.log' 原因,/var/log/supervisor/supervisord.log没有写权限,赋予权限即可: $ sudo chmod -R 777 /var/log/supervis...

Supervisor 使用教程 2019

Supervisor使用教程 这几天在研究怎么去控制队列消费进程的监控,看到了supervisor,就搞了起来,东西挺多的,就特意记录下来,为以后使用的时候,方便快速的查看。 概述 supervisor是一个进程管理工具,刚工作就接触到了,不过当时因为被脚本封装好了,所以都是直接用,对它的理解也仅仅是知道了有这么一个东西, 想着有机会了再深入了解。 supervisor是一个用pyt...

Nginx配置ssl双向认证 2019

NGINX 配置 SSL 双向认证 最近在搞ssl双向认证的任务,需要在本地调测,所以就使用自己生成的CA来生成证书。 这里只说如何配置双向认证,双向认证的概念就不说了。 具体看如下链接:https://www.jianshu.com/p/fb5fe0165ef2 CA与自签名 # 制作CA私钥 openssl genrsa -out ca.key 2048 # 制作CA公钥...

Mysql数据库名称修改的方法 2019

Mysql数据库名称修改的方法 在Mysql的使用中,难免会遇到需要修改Mysql数据库名称的问题,具体如何操作呢,下面列举了几种常见的方法。 方法1 如果表示MyISAM那么可以直接去到数据库目录mv就可以。 Innodb完全不行,自己测试过,会提示相关表不存在。 # 这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险 $ RENAME databas...

Mysql按时间排序分页问题 2018

Mysql按时间排序分页数据错误问题 问题抛出 最近使用Mysql查询数据遇到个奇葩的坑:在按时间排序进行分页的时候,遇见了这样的问题。 在查询所有的数据,并没有重复的数据出现,但是按时间排序,分页后有重复的数据。 案例重现如下 表结构如下: 查询表,并按date字段进行排序显示全部数据: select * from test order by date; 查询第一页: ...

Golang交叉编译 2018

Golang交叉编译 这几天浏览文章,发现Golang支持交叉编译(在一个平台上生成另一个平台的可执行程序), 本着学习的态度就去学习了,这里记录下以防后面要用的时候找不到了。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=...