后端开发
acethan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
缓存更新策略
数据写到缓存无非两种情况。 应用读缓存没有命中时,会去读db然后再将读取的数据写到缓存。 应用更新db中数据后,再更新缓存。 所以更新缓存的方式可以分为以下几种: 1、先删缓存再更新db 对同一个key并发读写缓存可能导致缓存脏数据,一直到下一次数据更新或者缓存失效。 更新 查询 删除缓存 读缓存(空) 读db(a=1) 更新db(a=100) 写缓存 如上图,缓存a=1,但是数据库a=100。 2、先更新db再删缓存 查询缓存,没有命中,从db读数据后原创 2021-05-06 08:42:13 · 305 阅读 · 0 评论 -
The Log-structured merge-tree
1、写入过程 数据顺序写入WAL,保证数据不丢。 写入memtable,memtable是按key排序的skiplist。写入memtable后返回客户端写入成功。 memtable写满后(默认32M),转换为immutable memtable。 后台线程将immutable memtable刷到磁盘,磁盘数据分层存储,L0层是immutable memtable的存储层所以文件内有序,文件之间key是无序的。 上层文件少,下层文件多, 一般下一层是上一层的10倍。上层写满后,数据被merge到下一层,原创 2021-05-05 21:38:28 · 371 阅读 · 0 评论 -
go-grpc
1、环境搭建 # 安装官方的protoc工具 https://github.com/protocolbuffers/protobuf/releases # 生成golang代码生成插件 go get -u github.com/golang/protobuf/protoc-gen-go # 安装protoc引入的依赖 go get google.golang.org/protobuf/reflect/protoreflect go get google.golang.org/protobuf/runtime原创 2021-05-05 19:58:42 · 236 阅读 · 0 评论
分享