Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
1cd92e7f
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1cd92e7f
编写于
5月 31, 2010
作者:
P
Pieter Noordhuis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
function to create a new ziplist encoded list
上级
23f96494
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
8 deletion
+13
-8
redis.c
redis.c
+13
-8
未找到文件。
redis.c
浏览文件 @
1cd92e7f
...
...
@@ -2984,9 +2984,17 @@ static robj *dupStringObject(robj *o) {
static
robj
*
createListObject
(
void
)
{
list
*
l
=
listCreate
();
robj
*
o
=
createObject
(
REDIS_LIST
,
l
);
listSetFreeMethod
(
l
,
decrRefCount
);
return
createObject
(
REDIS_LIST
,
l
);
o
->
encoding
=
REDIS_ENCODING_LIST
;
return
o
;
}
static
robj
*
createZiplistObject
(
void
)
{
unsigned
char
*
zl
=
ziplistNew
();
robj
*
o
=
createObject
(
REDIS_LIST
,
zl
);
o
->
encoding
=
REDIS_ENCODING_ZIPLIST
;
return
o
;
}
static
robj
*
createSetObject
(
void
)
{
...
...
@@ -4031,8 +4039,7 @@ static robj *rdbLoadObject(int type, FILE *fp) {
/* Read list value */
if
((
len
=
rdbLoadLen
(
fp
,
NULL
))
==
REDIS_RDB_LENERR
)
return
NULL
;
o
=
createObject
(
REDIS_LIST
,
ziplistNew
());
o
->
encoding
=
REDIS_ENCODING_ZIPLIST
;
o
=
createZiplistObject
();
/* Load every single element of the list */
while
(
len
--
)
{
...
...
@@ -5004,8 +5011,7 @@ static void pushGenericCommand(redisClient *c, int where) {
addReply
(
c
,
shared
.
cone
);
return
;
}
lobj
=
createObject
(
REDIS_LIST
,
ziplistNew
());
lobj
->
encoding
=
REDIS_ENCODING_ZIPLIST
;
lobj
=
createZiplistObject
();
dictAdd
(
c
->
db
->
dict
,
c
->
argv
[
1
],
lobj
);
incrRefCount
(
c
->
argv
[
1
]);
}
else
{
...
...
@@ -5293,8 +5299,7 @@ static void rpoplpushcommand(redisClient *c) {
if
(
!
handleClientsWaitingListPush
(
c
,
c
->
argv
[
2
],
value
))
{
/* Create the list if the key does not exist */
if
(
!
dobj
)
{
dobj
=
createObject
(
REDIS_LIST
,
ziplistNew
());
dobj
->
encoding
=
REDIS_ENCODING_ZIPLIST
;
dobj
=
createZiplistObject
();
dictAdd
(
c
->
db
->
dict
,
c
->
argv
[
2
],
dobj
);
incrRefCount
(
c
->
argv
[
2
]);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录