Google的LevelDB介绍

给你的hugo提供一个在线的编辑器

自已比较喜欢语雀的编辑器、风格,而且在线的编译器比较方便,而且语雀给文章提供了webhooks可以来获取一个文章的更新,所以旧想着在语雀上的文章可不可以同步到自已的博客当中,所以在写了这个简单的webhoks工具,来将语雀的文章实时同步到hugo。

如何选择正确的开源许可证

网络流量的限流调整算法

限流算法可以用来保护整个系统的稳定性,防止系统在流量大时被打挂,下面介绍两种常用的两种限流算法 漏桶和令牌桶的使用场景以及golang代码实现

Reflect的一些例子

Golang reflect package examples

这个仓库包含了reflect包的示例 主要用于编码解码和动态调用函数

使用FuncOption来初始化对象

Golang语言层面上没有可以为一个变量初始化值的方法,但是在Golang中可以使用另一种方法Func Option,这使得我们可以初始化对象的默认值,并可以优雅的修改

Protobuf语法

Protobuf是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或RPC数据交换协议。它可以用户通讯协议,数据存储等领域的语言无关平台无关可扩展的序列化结构数据格式,pb属于二进制协议,传输速度快,更容易解析

Golang实现Snowflake算法

SnowFlake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法,它可以满足Twitter每秒上万条消息ID分配的请求,这些消息ID是唯一的且有大致的递增顺序。

Go 并发模型介绍

Go中高效的并发得益于GPM这个并发模型使用Goroutinue并发的运行多个任务

Redis

redis事务

Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单元,一个事务中的命令要么都执行,要么都不执行。

使用MUUTI开始一个事务,然后把所有要在同一个事务中执行的命令都发送给 Redis后,我们使用EXEC命令告诉Redis将等待执行的事务队列中的所有命令(开始事务后,每一台输入命令都返回QUEUED的命令)按照发送顺序依次执行。命令在执行EXEC后才依次执行。
Redis保证一个事务中的所有命令要么都执行要么都不执行。如果在发送EXEC命令前客户端短线,则Redis会清空事务队列,事务中的命令都不会执行。
Redis事务保证在一个事务内的命令依次执行的过程中而不被其他命令插入