考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。 所以我斗胆以 Redis 为题材,对 Redis 常见问题做一个总结,希望能够弥补大家的知识盲点。 我要晨读
Hello everyone: 过去3个月我们一直在Loom网路上开发专门用于ERC721通证的一款Plasma Cash实现。有鉴于ERC721通证本身是独特不可替代的,因此该实现并不存在通证拆分或合并的问题。 我要晨读
对LevelDB比较了解应该知道其中一块cache实现:LRU Cache是采用双向链表 + HashTable,其中HashTable是为了解决双向链表的查找性能缺陷才引入的。接下来看一下采用golang如何实现LRU Cache。 我要晨读
软件架构 软件架构是在软件的内部,经过综合各种因素的考量、权衡,选择特定的技术,将系统划分成不同的部分并使这些部分相互分工,彼此协作,为用户提供需要的价值。 我要晨读
毕竟,如果我们去除信任另一方将会执行的需要,那么做事情的效率究竟会提高多少呢? 究竟什么是智能合约呢?这难道不是以太坊的范畴吗?这难道不是未来要走的道路吗?你为什么要阻挠进步呢? 在本文中,我将阐述什么是智能合约以及与之相关的工程实践(提示:这不那么简单,很难保证)。 我要晨读
带入gRPC:gRPC Streaming, Client and Server 我要晨读
Go 中的 interface 可以静态编译,动态执行,是最让我感到兴奋的一个特性。如果要让我推荐一个 Go 语言的特性给其他的语言,那我一定会推荐 interface。 我要晨读
我们在网上做的工作,大部分其实就是事件,webhooks 已经成为了连接系统的主要方式,不管是用户创建、支付成功、DockerHub 镜像推送或者 Git 仓库上的合并请求,这些都是非常有用并且轻量级的共享信息的方式 我要晨读
CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象,它不关注发送消息的实体,而关注与发送消息时使用的channel。 我要晨读
tail 是我们大多数人都熟悉的命令。我假设你也熟悉提供的 -f 选项。如果你不熟悉,知道它会打印出文件的最后几行即可。最近在一个项目上工作,我想知道我需要做什么来实现这个功能。这个想法来自阅读 Feynman 的书: 我要晨读
正如前面的文章提到的,go-micro 是一个可插拔的框架,它连接了许多不同的常用技术。如果你看看插件仓库,你会看到它支持多少插件。 在我们的例子中,我们将使用 NATS 代理插件。 我要晨读
Go 语言的错误处理是基于明确的目的而设计的。你应该从函数中返回所有可能的错误,并且检查/处理这些返回值。和其他语言相比,这一点可能看起来有些繁琐和不人性化,其实并不是这样的。让我们来看看一些基本的例子,然后继续做一些较重要的事情。 我要晨读
按照 Go 语言官方文档所说, unsafe 是关注 Go 程序操作类型安全的包。 像包名暗示的一样,使用它要格外小心; unsafe 可以特别危险,但它也可以特别有效。例如,当处理系统调用时,Go 的结构体必须和 C 的结构体拥有相同的内存结构,这时你可能除了使用 unsafe 以外,别无选择。 我要晨读
node的tick()方法调用raft/raft.go中raft结构体的tick()。在1.2节中, raft.becomeFollower()中设置了raft结构体的step函数和tick函数=tickElection。 我要晨读
“区块链”这个名词在三年以前还是一个很小众的技术词汇,但是随着2017年各种加密数字货币的横空出世,这个词现在变得人尽皆知了,确实,连跳广场舞的大妈都加入了炒币的行列,但这并不是一个好的信号,俗话说“大妈的涉足就是最好的看空指标”,果不其然,在比特币达到价格顶峰以后,开始一路跳水,到现在差不多已经跌去价格的四分之三了,而那些宣称区块链将要改变世界的人也变得沉默了许多。 我要晨读
我一般调试Go程序都是通过log日志,性能调试的话通过 pprof 、trace、flamegraph等,主要是Go没有一个很好的集成的debugger,前两年虽然关注了delve,但是在IDE中集成比较粗糙,调试也很慢,所以基本不使用debugger进行调试, 最近看到滴滴的工程师分享的使用debugger在调试Go程序,我觉得有必要在尝试一下这方面的技术了。 我要晨读
当你的golang程序在运行过程中消耗了超出你理解的内存时,你就需要搞明白,到底是 程序中哪些代码导致了这些内存消耗。此时golang编译好的程序对你来说是个黑盒,该 如何搞清其中的内存使用呢?幸好golang已经内置了一些机制来帮助我们进行分析和追 踪。 此时,通常我们可以采用golang的pprof来帮助我们分析golang进程的内存使用。 我要晨读
Golang被证明非常适合并发编程,goroutine比异步编程更易读、优雅、高效。本文提出一个适合由Golang实现的Pipeline执行模型,适合批量处理大量数据(ETL)的情景。 我要晨读
这是 Cloudflare 的 Filippo Valsorda 2016年发表在Gopher Academy的一篇文章, 虽然过去两年了,但是依然很有意义。 我要晨读
PouchContainer 源自阿里巴巴内部场景,诞生初期,在如何为互联网应用保驾护航方面,倾尽了阿里巴巴工程师们的设计心血。 我要晨读