目前,Vmware在资助着redis项目的开发和维护。
1
2
3
4
5
6
|
typedefchar*sds;
structsdshdr{
longlen;
longfree;
charbuf[];
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//list迭代器
typedefstructlistIter{
listNode*next;
intdirection;
}listIter;
//list数据结构
typedefstructlist{
listNode*head;
listNode*tail;
void
*(*dup)(
void
*ptr);
void
(*
free
)(
void
*ptr);
int
(*match)(
void
*ptr,
void
*key);
unsignedintlen;
listIteriter;
}list;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//dict中的元素项
typedefstructdictEntry{
void
*key;
void
*val;
structdictEntry*next;
}dictEntry;
//dict相关配置函数
typedefstructdictType{
unsignedint(*hashFunction)(constvoid*key);
void
*(*keyDup)(
void
*privdata,constvoid*key);
void
*(*valDup)(
void
*privdata,constvoid*obj);
int
(*keyCompare)(
void
*privdata,constvoid*key1,constvoid*key2);
void
(*keyDestructor)(
void
*privdata,
void
*key);
void
(*valDestructor)(
void
*privdata,
void
*obj);
}dictType;
//dict定义
typedefstructdict{
dictEntry**table;
dictType*type;
unsignedlongsize;
unsignedlongsizemask;
unsignedlongused;
void
*privdata;
}dict;
//dict迭代器
typedefstructdictIterator{
dict*ht;
intindex;
dictEntry*entry,*nextEntry;
}dictIterator;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
typedefstructzskiplistNode{
structzskiplistNode**forward;
structzskiplistNode*backward;
doublescore;
robj*obj;
}zskiplistNode;
typedefstructzskiplist{
structzskiplistNode*header,*tail;
unsignedlonglength;
intlevel;
}zskiplist;
typedefstructzset{
dict*dict;
zskiplist*zsl;
}zset;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
daemonizeyes
pidfile/usr/local/redis/var/redis.pid
port6379
timeout300
logleveldebug
logfile/usr/local/redis/var/redis.
log
databases16
save9001
save30010
save6010000
rdbcompressionyes
dbfilenamedump.rdb
dir/usr/local/redis/var/
appendonlyno
appendfsyncalways
glueoutputbufyes
shareobjectsno
shareobjectspoolsize1024
|