news 2026/7/8 2:08:51

kvstore (二)协议层设计 + 引擎层初识(array数组)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kvstore (二)协议层设计 + 引擎层初识(array数组)

前言

介绍

所谓kvstore就是类似于redis服务器的一种思想,通过自定义的一些协议,能够根据网络层recv到的数据进行解析,然后去到kvstore中的引擎层拿到想要的数据,最后封装组织回发。
自定义协议可以如下–CRUD:

  1. SET:set key value
  2. GET:get key
  3. DEL:del key
  4. MOD:mod key value
  5. EXIST:exist key

基于上一章节kvstore (一) 网络层设计,我们已经实现了将接收完数据后获取接收数据,并进行处理(上节只是做了简单打印)的函数kvs_protocol(char* msg , int length , char * response)通过函数指针的方式可以传递到各个网络框架的recvsend层面,本节就要对该业务方法进行实现。具体思路如下:

  1. 分割解析字符串 --msg:将字符串按照协议格式进行分割,并将指针存储到数组中。kvs_filter_token(char*msg , char *token[])
  2. 解析字符串(过滤器/分析器):对分割后的字符串进行识别,并在其内部调用引擎层的方法,比如:kvs_array_set()等方法

协议层设计

intkvs_protocol(char*msg,intlength,char*response){//其实此处按照协议格式只需要为3,但是为了防止set key value1 value2 ....这种,可以设定大一些char*tokens[kvs_max_tokens]={0};//分割字符串(为解析协议做准备)intcount=kvs_split_token(msg,tokens);//识别分割的字符串,并分别调用对应的业务逻辑set、get....returnkvs_filter_protocol(tokens,count,response);}

1. 分割解析字符串

核心思想:

  1. 利用strtok()方法,将msg进行“ ”分割,并且按照索引存到tokens数组中
  2. 分解后的tokens[0]:set/get/mod/del,tokens[1]:key,tokens[2]:key
kvs_split_token(char*msg,char*tokens[]){......}

2. 解析字符串tokens[0],tokens[1],tokens[2]

2.1 定义一个枚举和指针数组

此处为了方便循环遍历,我么可以定义一个枚举,里面对应着指针数组char *command[]中的具体执行参数。

....
.....

2.2 根据解析到的cmd,分别调用不同的方法

利用2.1中定义的方便遍历的enum,可以通过switch - case进行处理:

  1. KVS_CMD_SET:----kvs_array_set
  2. KVS_CMD_GET:----kvs_array_get
  3. KVS_CMD_MOD:----kvs_array_MOD
  4. KVS_CMD_EXIST:----kvs_array_EXIST
......

引擎array初步实现

根据上述所讲,已经可以实现接收到的数据包的解析,因此我们需要一个数据结构作为引擎对数据进行存储、修改、删除等
这里先使用简单的array数组捋清楚引擎层的思路,后续引入更为高效的数据结构。


数组数据结构图片 –


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 17:09:45

如何为TensorFlow镜像中的模型添加输入验证机制

如何为TensorFlow镜像中的模型添加输入验证机制 在工业级AI系统中,一个常见的“意外”是:模型本身准确率高达98%,但上线后频繁崩溃。排查日志发现,问题并非出在训练数据或架构设计上,而是客户端传入了一张尺寸为1024x7…

作者头像 李华
网站建设 2026/7/1 22:41:22

当学术写作遇上AI协作者:书匠策如何悄然重塑论文写作的“静默生产力

在人工智能席卷各行各业的当下,科研工作者的日常却似乎仍被大量重复性劳动所裹挟:文献筛选耗时费力、逻辑结构反复调整、语言表达屡屡卡壳、格式规范琐碎烦人……这些“看不见的摩擦力”,正在悄悄吞噬研究者的创造性能量。有没有一种可能&…

作者头像 李华
网站建设 2026/7/1 23:05:43

当学术写作不再“从零开始”:一位科研新人如何用AI工具悄然提升期刊论文产出效率

在实验室熬过无数个通宵、数据跑了一遍又一遍、图表反复修改数十次……可真正卡住许多科研新人脚步的,往往不是实验本身,而是——写论文。尤其是面对期刊投稿的格式规范、逻辑结构、语言表达,很多人陷入“有成果,写不出”的窘境。…

作者头像 李华
网站建设 2026/7/1 9:32:54

手写汉字识别:基于TensorFlow镜像的CNN-LSTM架构

手写汉字识别:基于TensorFlow镜像的CNN-LSTM架构 在数字化浪潮席卷教育、金融与文化遗产保护的今天,一个看似简单却极具挑战的问题正悄然浮现——如何让机器“读懂”人类的手写汉字?不同于印刷体文字的规整清晰,手写汉字千人千面&…

作者头像 李华
网站建设 2026/7/1 9:32:58

年龄识别模型合规吗?TensorFlow镜像中的伦理审查

年龄识别模型合规吗?TensorFlow镜像中的伦理审查 在金融开户、社交内容分级甚至智能门禁系统中,我们越来越频繁地遇到“请上传一张清晰的人脸照片”的提示。背后的算法不仅识别人是谁,还试图判断你看起来多大——年龄识别技术正悄然渗透进日常…

作者头像 李华