Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
8fc85a12
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,体验更适合开发者的 AI 搜索 >>
提交
8fc85a12
编写于
10月 31, 2013
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
scanGenericCommand() refactoring and handling of integer encoded elements.
This commit fixes issue #1354.
上级
e6bb738b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
8 deletion
+21
-8
src/db.c
src/db.c
+21
-8
未找到文件。
src/db.c
浏览文件 @
8fc85a12
...
...
@@ -480,15 +480,28 @@ void scanGenericCommand(redisClient *c, robj *o) {
while
(
node
)
{
robj
*
kobj
=
listNodeValue
(
node
);
nextnode
=
listNextNode
(
node
);
int
filter
=
0
;
/* Filter element if it does not match the pattern. */
if
(
!
filter
&&
!
patnoop
)
{
if
(
sdsEncodedObject
(
kobj
))
{
if
(
!
stringmatchlen
(
pat
,
patlen
,
kobj
->
ptr
,
sdslen
(
kobj
->
ptr
),
0
))
filter
=
1
;
}
else
{
char
buf
[
REDIS_LONGSTR_SIZE
];
int
len
;
redisAssert
(
kobj
->
encoding
==
REDIS_ENCODING_INT
);
len
=
ll2string
(
buf
,
sizeof
(
buf
),(
long
)
kobj
->
ptr
);
if
(
!
stringmatchlen
(
pat
,
patlen
,
buf
,
len
,
0
))
filter
=
1
;
}
}
/* Keep key iff pattern matches and, if we are iterating the key
* space, check that the key hasn't expired. */
if
((
patnoop
||
stringmatchlen
(
pat
,
patlen
,
kobj
->
ptr
,
sdslen
(
kobj
->
ptr
),
0
))
&&
(
o
!=
NULL
||
expireIfNeeded
(
c
->
db
,
kobj
)
==
0
))
{
/* Keep */
}
else
{
/* Filter element if it is an expired key. */
if
(
!
filter
&&
o
==
NULL
&&
expireIfNeeded
(
c
->
db
,
kobj
))
filter
=
1
;
/* Remove the element and its associted value if needed. */
if
(
filter
)
{
decrRefCount
(
kobj
);
listDelNode
(
keys
,
node
);
/* Also remove the value for hashes and sorted sets. */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录