地鼠工程师
码龄8年
关注
提问 私信
  • 博客:32,962
    社区:12
    32,974
    总访问量
  • 38
    原创
  • 2,365,785
    排名
  • 14
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-03-02
博客简介:

高思维深思考的博客

查看详细资料
个人成就
  • 获得20次点赞
  • 内容获得23次评论
  • 获得38次收藏
创作历程
  • 10篇
    2021年
  • 32篇
    2020年
成就勋章
TA的专栏
  • 测试
    1篇
  • etcd
  • etcd入门
    1篇
  • etcd核心知识
    2篇
  • etcd源码知识
    6篇
  • 数据结构
    7篇
  • redis
    9篇
  • golang
    2篇
  • go核心知识
    1篇
  • go源码
    6篇
  • go开源
    1篇
  • mysql
    11篇
  • 分布式
    3篇
  • 缓存
    1篇
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

golang逃逸分析

什么是堆和栈
原创
发布博客 2021.04.28 ·
269 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang之channel源码解析

type hchan struct { dataqsiz uint //缓冲槽大小 buf unsafe.Pointer//缓冲槽指针 sendx uint // 发送索引 recvx uint // 接受索引 recvq waitq // 接收队列 sendq waitq // 发送队列}异步和同步的区别,在于是............
原创
发布博客 2021.04.17 ·
470 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySql中“too many connections“错误

有时候在使用mysql过程中会出现"too many connections"的错误,顾名思义是因为连接数过多造成的,造成连接数过多的原因主要有:系统硬件等限制:根据官方说明,连接数受到线程库质量、RAM的可用性,响应时间,可用的文件描述符数量等影响,这种方式的解决方式为增加服务器或提高服务器的性能。连接的释放:这个很好理解,连接如果没有被正常释放,也可能导致连接数过多。最大连接数设置过低前面两种情况不做过多讲解,重点来讲一下如何合理的设置最大连接数。max_connections查看最大连
原创
发布博客 2021.04.07 ·
774 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

golang之map哈希表源码解析

makemap
原创
发布博客 2021.03.23 ·
436 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang之array数组源码解析

数组作为最基本的数据结构之一,
原创
发布博客 2021.02.22 ·
963 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

golang之interface接口源码解析

golang之interface接口源码解析
原创
发布博客 2021.04.20 ·
493 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

golang之slice切片源码解析

扩容
原创
发布博客 2021.01.30 ·
515 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang的json源码解析

golang序列化和反序列化在encoding/json包,主要方法为encoding/json.Marshal和encoding/json.Unmarshal,序列化和反序列化主要是通过反射来实现的。序列化一开始序列化会定义一个encodeState结构体,因为在序列化过程中可以理解为一种树形的解析方式,这个后面会讲,树形的方式常规的一种方式就是用递归的方式去实现,我们知道递归很容易引起性能问题,所以go源码里也做了缓存的优化,encodeState里用到了bytes.Buffer,正是在递归过程中不
原创
发布博客 2021.01.26 ·
1530 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

golang的struct tag

格式type strutName struct{ fieldName type `key:"value,opt1,opt2,opts..." key2:"value2,opt1,opt2,opts..."`}结构体字段fieldName首字母必须是大写,在go中首字母大小写代表公私有属性tag都是以key:"value"的形式存在,多个键值对之间用空格隔开,这个的好处是可以构建多个json解析器举例说明多json解析器忽略空值omitempty表示在编码时如果字段为空,则忽略这
原创
发布博客 2021.01.08 ·
2467 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

etcd网络层源码分析(四)——stream通道实现

etcd网络层(四)——stream接口实现
原创
发布博客 2020.11.05 ·
2186 阅读 ·
3 点赞 ·
6 评论 ·
0 收藏

etcd网络层源码分析(四)——pipeline通道实现

etcd网络层(五)——pipeline接口实现
原创
发布博客 2020.11.04 ·
1239 阅读 ·
7 点赞 ·
7 评论 ·
0 收藏

etcd网络层源码分析(三)——Peer接口实现

etcd网络层(三)——Peer接口实现
原创
发布博客 2020.11.03 ·
440 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

etcd网络层源码分析(二)——Transporter接口实现

1.dial网络频率限制
原创
发布博客 2020.11.03 ·
492 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

etcd网络层源码分析(一)

etcdserver.NewServer//轻量级,用了不会关闭var err errort.streamRt, err = newStreamRoundTripper(t.TLSInfo, t.DialTimeout)if err != nil { return err}//对于大的数据pipeline,用了立刻关闭的入口t.pipelineRt, err = NewRoundTripper(t.TLSInfo, t.DialTimeout)if err != nil { retur
原创
发布博客 2020.10.31 ·
385 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

etcd配置文件

成员标志-name此成员的可读名称默认值:“default”环境变量:ETCD_NAME-data-dir数据目录的路径环境变量:ETCD_WAL_DIR–wal-dir专用wal目录的路径。如果设置了此标志,etcd会将WAL文件写入walDir而不是dataDir。这允许使用专用磁盘,并有助于避免日志记录和其他IO操作之间的io竞争。–snapshot-count触发快照到磁盘的已提交事务数默认值:“100000”环境变量:ETCD_SNAPSHOT_CO
原创
发布博客 2020.09.11 ·
3359 阅读 ·
0 点赞 ·
1 评论 ·
5 收藏

etcd安装

github下载etcd$ git clone https://github.com/etcd-io/etcd.git$ cd etcd$chmod +x build$ ./build运行服务端cd /bin./etcd客户端cd /bin./etcdctl put foo bar./etcdctl get foo安装参考
原创
发布博客 2020.09.11 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

etcd的v3基准测试

etcd自带基准测试基准测试在目录tool/benchmark,可以通过go install安装后运行测试# write to leaderbenchmark --endpoints=${HOST_1} --target-leader --conns=1 --clients=1 \ put --key-size=8 --sequential-keys --total=10000 --val-size=256benchmark --endpoints=${HOST_1} --target-lea
翻译
发布博客 2020.09.10 ·
793 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

redis6.0源码整数集合

整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合键的底层实现。typedef struct intset { //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组 int8_t contents[];} intset;contents数组是整数集合的底层实现:整数集合的每个元素都是contents数组的一个数据项(i
原创
发布博客 2020.07.30 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Innodb锁讲解

概述上一章我们讲到,MyISAM和MEMORY存储引擎采用的是表级锁;BDB存储引擎采用的是页面锁,但也支持表级锁;InnoDB存储引擎即支持行级锁,也支持表级锁。行锁的共享锁和排它锁InnoDB实现了一下两种类型行锁:共享锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。排他锁(X): 允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享锁和排他锁。另外,为了允许行锁和表锁共存,实现多粒度机制,InnoDB还有两种内部使用的意向锁(Intention Locks)
原创
发布博客 2020.06.09 ·
1150 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

ab压测

常用命令表示一次发送1000请求,并发请求100个$ ab -n 1000 -c 100 http://localhost:8030/buy/goodsThis is ApacheBench, Version 2.3 <$Revision: 1874286 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundati
原创
发布博客 2021.04.02 ·
464 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多