手把手教你redis数据库的二次开发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了手把手教你redis数据库的二次开发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2730字,纯文字阅读大概需要4分钟。
内容图文
功能说明:通过修改源代码的形式,实现redis自带的命令set key value的功能。并且新的命令为make key value,注意,所有修改的源文件都处于src目录下面 需要修改的部分: 1 redis.c 该文件是redis数据库服务器端主文件,也就是main函数入口处。所有的命令定
功能说明:通过修改源代码的形式,实现redis自带的命令set key value的功能。并且新的命令为make key value,注意,所有修改的源文件都处于src目录下面
需要修改的部分:
1 redis.c
该文件是redis数据库服务器端主文件,也就是main函数入口处。所有的命令定义均在该文件定义的全局变量中。
struct redisCommand redisCommandTable[] = { {"get",getCommand,2,"r",0,NULL,1,1,1,0,0}, {"make",makeCommand,3,"wm",0,NULL,1,1,1,0,0},//our function {"set",setCommand,-3,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"setnx",setnxCommand,3,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"setex",setexCommand,4,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"psetex",psetexCommand,4,"wm",0,noPreloadGetKeys,1,1,1,0,0}, {"append",appendCommand,3,"wm",0,NULL,1,1,1,0,0}, {"strlen",strlenCommand,2,"r",0,NULL,1,1,1,0,0}, ......这里省略.......结构体redisCommand就是保存redis数据库的所有命令。我们在第二行添加了一句:
{"make",makeCommand,3,"wm",0,NULL,1,1,1,0,0},//our function其中注意,第一个参数为命令,第二个为命令调用的函数,第三个三参数。比如set key value 一共就是三个参数,注意如果输入命令和参数不同,服务器端会给出提示。
2 redis.h
该文件是头文件,需要在这里添加对函数的原型声明。
/* Commands prototypes */ void authCommand(redisClient *c); void pingCommand(redisClient *c); void echoCommand(redisClient *c); void setCommand(redisClient *c); void makeCommand(redisClient *c); void setnxCommand(redisClient *c); ...............省略.................
我们在头文件上添加我们新的函数原型
void makeCommand(redisClient *c);
3 t_string.c
该文件是函数的实现文件。
//add by jianghuiwen void makeCommand(redisClient *c) { setKey(c->db,c->argv[1],c->argv[2]); addReply(c, shared.ok); return; } void getCommand(redisClient *c) { getGenericCommand(c); }如上述所示,
void makeCommand(redisClient *c)就是我们自己定义的实现函数,
其中参数是redisClient *c,也就是客户端请求(我这里暂时这么说,具体的我会在教程做进一步说明)。
setKey(c->db,c->argv[1],c->argv[2]);这里setKey是一个函数,该函数的作用就是设置数据库中键值的函数,其中第一个参数为系统指定的数据库,第二个参数为客户端请求第二个参数,第三个参数为客户端命令第三个参数。
也就是分别对应:set key value中的key 和value。
addReply(c, shared.ok);是给客户端返回一个OK消息,相当于发一个信号,否则客户端会等待。
上面三个参数修改完成后,在src上一层目录进行make,重新编译,然后运行服务器端和客户端
在客户端输入make name jiang
再输入get name
服务器端会返回jiang。说明执行成功。
如果对于redis安装或者编译有疑问,可以在这篇帖子下留言,我会尽快回答。
内容总结
以上是互联网集市为您收集整理的手把手教你redis数据库的二次开发全部内容,希望文章能够帮你解决手把手教你redis数据库的二次开发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。