用户工具

站点工具


about_redis_21

Redis那些事儿 第二十一章 如何定制开发Redis

定制开发redis主要流程分为三步:

1.注册命令

在redis.c的redisCommandTable中添加新命令:

    {"test",testCommand,-5,"r",0,NULL,1,1,1,0,0}

2.添加命令实现文件

这里假定为:test.c

3.实现命令函数

 #include "redis.h"
   void testCommand(redisClient *c) {
       printf("this is test method !!! args[1]->%s args[2]->%s",c->argv[1]->ptr,c->argv[2]->ptr);
       printf("\r\n");
       addReplyBulkCString(c,c->argv[2]->ptr);
  6 }

4.redis常用函数

1.db api

在db.c中定义了db的几个常用查询命令:

robj *lookupKeyWrite(redisDb *db, robj *key)

2.reply api

假如reply走mutibulk协议,那么需要先设置返回的总数

void addReplyMultiBulkLen(redisClient *c, long length) 

返回数值给客户端:

void addReplyBulkLongLong(redisClient *c, long long ll)

5.在makefile中添加模块

REDIS_SERVER_OBJ=test.o adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o
about_redis_21.txt · 最后更改: 2018/10/14 15:31 (外部编辑)