![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端开发
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 · 204 阅读 · 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 · 173 阅读 · 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/protoreflectgo get google.golang.org/protobuf/runtime原创 2021-05-05 19:58:42 · 131 阅读 · 0 评论