首页
学习
活动
专区
工具
TVP
发布

后台通用技术

专栏作者
11
文章
17971
阅读量
19
订阅数
golang本地缓存(bigcache/freecache/fastcache等)选型对比及原理总结
首先来梳理一下业务开发过程中经常面临的本地缓存的一些需求。我们一般做缓存就是为了能提高系统的读写性能,缓存的命中率越高,也就意味着缓存的效果越好。其次本地缓存一般都受限于本地内存的大小,所有全量的数据一般存不下。那基于这样的场景一方面是想缓存的数据越多,则命中率理论上也会随着缓存数据的增多而提高;另外一方面是想,既然所有的数据存不下那就想办法利用有限的内存存储有限的数据。这些有限的数据需要是经常访问的,同时有一定时效性(不会频繁改变)的。基于这两个点展开,我们一般对本地缓存会要求其满 足支持过期时间、支持淘汰策略。最后再使用自动管理内存的语言例如golang等开发时,还需要考虑在加入本地缓存后引发的GC问题。
jaydenwen123
2022-03-30
3.5K0
golang网络框架netpoll(Multi-Reactor模型)核心源码分析
netpoll是字节不久前开源的一款golang编写的高性能网络框架(基于Multi-Reactor模型),旨在用于处理rpc场景,详细的介绍可参见下图介绍。
jaydenwen123
2022-03-30
2.7K1
Kafka和RocketMQ实现原理对比
既然有了Kafka为什么还会出现RocketMQ?这就不得不提到RocketMQ的诞生动机了,在RocketMQ的官网上面可以找到这个问题答案,原文可以点击此处阅读。实际原因当然是kafka存在一些问
jaydenwen123
2021-12-27
1K0
gnet源码分析
接着上文的介绍,我们最后讨论了网络IO的几种实现模型,接下来我们有了理论基础,就可以分析一款实现reactor模型的网络框架,目前实现reactor的框架比较经典有netty、gnet。本文将重点分析gnet的网络实现。
jaydenwen123
2021-10-08
2K0
消息队列背后的设计思想
消息队列:它主要用来暂存生产者生产的消息,供后续其他消费者来消费。它的功能主要有两个:a.暂存(存储)、b.队列(有序:先进先出)。其他大部分场景对数据的消费没有顺序要求,主要用它的暂存能力 。从目前互联网应用中使用消息队列的场景来看,主要有以下三个: 1. 异步处理数据 2. 系统应用解耦 3. 业务流量削峰
jaydenwen123
2021-08-18
9390
lsm派系(不仅lsm tree)存储模型概述(下篇)
这部分内容主要回答我们在文章开头提到的第二个问题。第二个问题展开其实是一连串的问题。例如:lsm派系难道只有lsm tree这一类存储模型吗?如果答案是否定的,那么除了lsm tree存储模型外,还有哪些lsm 模型?这些模型之间又有哪些相同点和差异点?
jaydenwen123
2021-07-19
2.5K1
lsm派系(不仅lsm tree)存储模型概述(上篇)
虽然分为上下篇介绍,但两篇文章的内容之间比较独立,完全可以单独阅读。 下篇链接如下: lsm派系(不仅lsm tree)存储模型概述(下篇)
jaydenwen123
2021-07-19
1.8K0
自底向上分析boltdb源码之精简版
boltdb是一个纯go编写的磁盘型kv数据库、支持事务,底层采用b+树来组织数据。目前主要的用途是做分布式组件的wal,或者单机磁盘型数据存储。对数据库感兴趣的小伙伴,非常值得一读boltdb的源码。代码量不大只有3k~4k,但功能很强大,从中可以学到不少知识。boltdb项目还是蛮出名的,现在由etcd团队在维护,etcd维护的组件叫bbolt,从boltdb fork而来,此外还有其他的一些知名的开源项目在生产环境使用boltdb。本文最初是本着好奇心和兴趣的驱使,最后通过一种自底向上的方式对boltdb内部实现一探究竟。
jaydenwen123
2021-07-19
6040
tidwall之raft-wal源码分析
在分析tidwall/raft-wal的源码前,我们先介绍一下tidwall/wal模块,raft-wal内部是采用tidwall/wal来实现的一套持久化方案
jaydenwen123
2021-07-19
4400
tidwall/wal库源码分析
本文是前段时间做一个技术建设项目过程中,技术调研的一个持久化wal的实现库,此库可谓短小精悍,尤其内部数据的组织结构尤为值得一学,下文将重点对其核心功能进行源码分析
jaydenwen123
2021-07-19
6610
为什么选择b+树作为存储引擎索引结构
本文的内容主要以问答方式展开,层层递进分析、解决问题,本文涉及内容会围绕下面三个问题展开。在开始阅读本文内容前,大家不妨先尝试自己回答下面三个问题!
jaydenwen123
2021-06-06
1.9K3
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档