- 博客(19)
- 收藏
- 关注
原创 git生产常用命令
/下面更新你的代码,会让你的所有代码变回master原样,但是你修改的代码已经在暂存区,push就可以了。下面解决修改代码后push,报错你的代码版本过久的问题。必须要email和name都对应修改才行。回退到master最新版本。
2025-01-20 10:00:41
304
原创 golang安装,常用框架安装,记忆点
如果没有需要找mcentral,mcentral共有67个等级,每个等级的预留缓存大小也不相同,程序根据自己的大小,去mcentral寻找是否有合适的缓存,由于可能有多线程,所以需要加锁处理,但是锁粒度较小。有一个64位的pallocsum,首位不用,剩下的分为3个部分,分别是start,max和end,表示首次出现空闲页的span序号,连续空闲空间最大的span序号,以及最后出现空闲span的序号。然而,对于较小的内存请求,Go 语言采用了特殊的优化技术来减少内存浪费,这就是所谓的“小对象分配优化。
2024-11-04 10:48:15
857
原创 grpc编程(新)
首先,服务端调用listen()函数,之后在客户端发送第一次握手后,创建tcb,并放入半连接队列中,之后由tcb完成后面的连接,握手是被动完成的。在连接完成后把tcb从半连接队列放到全连接队列,然后服务端调用accept()从全连接队列获取fd,并等待消息。accept()会把tcb从全连接队列取下,并且给连接分配一个fd。
2024-09-11 17:58:28
791
原创 TiDB学习教程
TIDB可以无限的扩容,并且可以实时的处理事务和分析(OLTP,OLAP)(OLTP可以处理100%,OLAP可以处理80%,剩下的需要TiDBSpark),可以算是mysql的升级版,并且相对于redis、rocksdb这种kv型数据库,可以更加适配mysql(TIDB也是kv数据库)。
2024-09-11 08:08:35
676
原创 docker使用
包含三种命令,build,share,run。有三个模块,包括client, docker主机和应用市场。其中主机安装和启动docker程序,应用市场保存上传的应用(镜像),client提供请求。我们的操作在client上进行。在需要启动镜像时,首先输入docker pull XX,把镜像从应用市场下载到主机。然后输入docker run XX,来启动主机内的镜像,生成的应用称为容器。
2024-09-09 16:10:52
1743
2
原创 rockdb
Lsm-tree比B+树更省空间,但不是一个数据结构,是一种存储方式,越热的数据越在上层。需要的头文件option用来调参。数据首先会被写入到一个内存结构(如跳表),当这个结构达到一定大小时,它会被flush到磁盘上形成一个新的SSTable(Sorted String Table)。之后的写操作会继续写入新的内存结构中,而多个SSTable会在后台进行合并(compaction),以减少查询时需要搜索的文件数量。
2024-09-08 20:29:28
781
原创 nginx使用
下载gcc sudo apt-get install build-essential下载nginx源码 git clone http://gitlab.0voice.com/2404_vip/nginx.git。
2024-08-26 15:47:43
1548
原创 redis使用方法
前者为redis基本数据结构,后者为适用于字符串的高效存储,并且buf需要适配非安全字符串(有\0的),所有共需20字节。rdb在断电时可能会有较多的数据丢失,因为rdb会在规定的时间间隔中创建快照,然后对快照使用保存,而aof在always时会一直保存,并且保存的是命令不是数据,所以文件大,损失少。看主库和库的run id是否相同,如果相同,使用增量更新,每次更新一个offset量,否则使用全量更新。由于lua脚本如果有先set,后lpush,这时set会成功,push会失败,所以lua没有一致性。
2024-08-18 15:46:49
1934
原创 spdlog用法
剩下的是对上面步骤的拆分,可自定义。sink为输出,logger连接registry和sink。两种绑定方法都可以。flush表示多久把用户缓冲区刷新到内核缓冲区。sink_it表示多久把数据刷新到用户缓冲区。第二个是输出到文件,参数分别为logger名,文件名,是否为清空数据,false为追加数据。第一行是在命令行输出。pattern格式化。
2024-08-16 11:49:17
212
原创 分布式redis语句
两者意思一样, nx表示在存在对应key时,其他客户端无法插入相同key数据。EX表示超时时间,到达时间后,会把nx的锁打开。
2024-08-15 14:36:43
81
原创 dpdk的实现,udp编程
首先 ifconfig 查看你的网卡名,如ens33然后cat /proc/interrupts |grep ens33如果是则不支持,需要打开配置文件,在虚拟机目录中,找到后缀为vmx文件,并打开修改或添加两行修改huge page设置。
2024-08-01 09:50:55
380
原创 改变服务器的文件符个数限制
中间为默认值,小于等于默认值不会处理,超过默认值小于最大值会释放无用端口,大于最大值会禁止分配端口。设置最大文件符,防火墙最大文件符。
2024-07-08 10:52:43
125
原创 DNS和UDP编程的实现
在抓以太网包之后,通过筛选DNS并停止抓包,双击一个包,有:图1中从上到下,依次是物理层,链路层,网络层,传输层和应用层。Domain Name System和图一对应,并且request包和对应的response包的Transcation ID是一样的。In表示internat,代号为1。
2024-07-05 13:19:08
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人