linux网络基础总结 Posted on 2019-05-07 最近在做linux网络相关的业务,使用过程中发现有些知识点依然比较模糊。总结如下, Linux处理数据包过程 当外界向主机发送数据时,在它从网卡流入后需要对它做路由决策,根据其目标决定是流入本机数据还是转发给其他主机。 如果是流入本机的数据,则数据会从内核 ... Read more »
go基础整理 Posted on 2019-04-05 | In golang main函数和init函数 Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个init函数,但这无论是对于可读性还是以 ... Read more »
golang下sync包整理 Posted on 2019-04-04 sync.Mutex123456789101112type Locker interface { Lock() Unlock()}互斥锁 Mutexfunc (m *Mutex) Lock()func (m *Mutex) Unlock()读写锁 RW ... Read more »
redis实现分布式锁 Posted on 2019-04-04 分布式应用进行逻辑处理时经常会遇到并发问题。比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。(Wiki 解释:所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开 ... Read more »
strconv包学习整理(golang) Posted on 2019-04-01 atob.go// 将布尔值转换为字符串 true 或 falsefunc FormatBool(b bool) string // 将字符串转换为布尔值// 它接受真值:1, t, T, TRUE, true, True// 它接受假值:0, f, F, FALSE, false, False// ... Read more »
生成可排序(时间序列)的唯一 id Posted on 2019-03-30 参考文章:https://www.callicoder.com/distributed-unique-id-sequence-number-generator/ 已有解决方案UUIDUUID是全局唯一的128位十六进制数字。 两次生成相同UUID的可能性可以忽略不计。UUID的问题在于它们的大小非常 ... Read more »