一些项目
文章平均质量分 85
interesting project
Orange#
这个作者很懒,什么都没留下…
展开
-
golang kv存储引擎
Bitcask存储模型简介Bitcask是一个kv存储的模型,它采用日志追加写的模式来记录数据。该模型包含两部分:内存部分和磁盘部分。我们都知道内存的读写速度是非常快的,痛点就是内存的易失性,所以我们必须将数据持久化到磁盘文件中。如何在磁盘中高效的读写呢?首先想要高效就必须了解磁盘读取数据的方式,传统的机械硬盘中,机械臂移动到目标磁道,然后磁盘旋转,读取该盘面上的数据,数据通过数据总线进入内存。如果要读取的数据是随机散布在硬盘中,需要消耗大量磁臂和磁盘移动时间,所以磁盘的顺序读取速度远远大于..原创 2022-05-07 13:22:39 · 1246 阅读 · 0 评论 -
golang bilibili直播弹幕姬
虽然市面上已有很多成熟的直播姬app,但还是想自己手搓一个以获得些许的成就感(说人话就是在家闲的)。话不多说,来看看我搓的"弹幕姬"有啥好玩的。(目前基础的架子已经搭好了,添加新功能只是人力问题...对,是我懒,哇酷哇酷)ps:感兴趣的同学可以直接在此基础上二次开发,增加新功能了(就是对响应包的字段值做判断,然后调接口balabala...),具体查看bullet_girl/handle_bullet.go中的handle()函数修改配置文件 -> 启动程序 -> 手机小破站扫码登录 -> 程序运行1、首先原创 2022-06-29 15:48:28 · 1165 阅读 · 1 评论 -
golang分布式任务调度
目录介绍 分析介绍Linux服务器中总是运行着诸多定时任务,任务的调度常借助Linux crontab完成。当任务变多,手工的监控日志、启停任务变得复杂。虽然市面上已有许多完善的任务调度服务,但是对于我们初学者来说,为了锻炼代码能力,尝试自行解决问题,造一造轮子,实现一些demo,也并非坏事。注:文章代码参照课程(Go语言打造分布式Crontab 轻松搞定高性能任务调度)实现,并上传至(https://github.com/k-si/crongo求个star~ otz)分析...原创 2022-04-15 16:45:36 · 4383 阅读 · 2 评论 -
golang分布式缓存
前言https://github.com/k-si/Janney是我模仿groupcache完成的一个分布式缓存,体积较小,适合学习分布式缓存思想。ps:仓库命名习惯用一些姓氏~groupcache的思想cache通过内存加速数据访问,如果访问的数据不在缓存中,那么就需要去别处获取该数据,方式一般有从本地数据库获取,或是请求远程节点,从别的节点去拿数据。groupcache本身想要的是每个节点存储专门的数据,比如对于一个指定的key,每次访问这个分布式集群,我都想让key的请求打到唯.原创 2021-12-16 00:59:32 · 1406 阅读 · 0 评论 -
Kinx TCP服务框架
前两天在小破站看到zinx框架的教程,于是跟着学了学,实现完了换了个名叫 Kinx hhhhh~。有意愿的可以star一波~GitHub - k-si/Kinx: tcp服务框架附一张整体架构图:设计思想tcp通信在代码层面上是非常简单的,因为几乎所有的语言都提供了套接字,套接字就是对底层操作系统通信细节的封装,只需要调用封装好的api,就可以完成复杂的通信操作。tcp通信典型的有server-client模式,对于TCP服务器来说扮演的肯定是server的角色。它通过监听端口,循环阻塞获.原创 2022-05-07 13:21:29 · 2222 阅读 · 0 评论