Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
别团等shy哥发育
redis
提交
69bfffb4
R
redis
项目概览
别团等shy哥发育
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
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,发现更多精彩内容 >>
提交
69bfffb4
编写于
1月 09, 2011
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test adapted to run with diskstore, and a few bugs fixed
上级
5e1d2d30
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
39 addition
and
14 deletion
+39
-14
src/aof.c
src/aof.c
+4
-1
src/db.c
src/db.c
+3
-1
src/debug.c
src/debug.c
+13
-0
src/diskstore.c
src/diskstore.c
+1
-1
src/dscache.c
src/dscache.c
+1
-2
tests/test_helper.tcl
tests/test_helper.tcl
+5
-4
tests/unit/other.tcl
tests/unit/other.tcl
+12
-5
未找到文件。
src/aof.c
浏览文件 @
69bfffb4
...
...
@@ -529,7 +529,10 @@ int rewriteAppendOnlyFileBackground(void) {
pid_t
childpid
;
if
(
server
.
bgrewritechildpid
!=
-
1
)
return
REDIS_ERR
;
redisAssert
(
server
.
ds_enabled
==
0
);
if
(
server
.
ds_enabled
!=
0
)
{
redisLog
(
REDIS_WARNING
,
"BGREWRITEAOF called with diskstore enabled: AOF is not supported when diskstore is enabled. Operation not performed."
);
return
REDIS_ERR
;
}
if
((
childpid
=
fork
())
==
0
)
{
/* Child */
char
tmpfile
[
256
];
...
...
src/db.c
浏览文件 @
69bfffb4
...
...
@@ -201,7 +201,8 @@ int dbDelete(redisDb *db, robj *key) {
return
dictDelete
(
db
->
dict
,
key
->
ptr
)
==
DICT_OK
;
}
/* Empty the whole database */
/* Empty the whole database.
* If diskstore is enabled this function will just flush the in-memory cache. */
long
long
emptyDb
()
{
int
j
;
long
long
removed
=
0
;
...
...
@@ -210,6 +211,7 @@ long long emptyDb() {
removed
+=
dictSize
(
server
.
db
[
j
].
dict
);
dictEmpty
(
server
.
db
[
j
].
dict
);
dictEmpty
(
server
.
db
[
j
].
expires
);
if
(
server
.
ds_enabled
)
dictEmpty
(
server
.
db
[
j
].
io_negcache
);
}
return
removed
;
}
...
...
src/debug.c
浏览文件 @
69bfffb4
...
...
@@ -177,7 +177,20 @@ void computeDatasetDigest(unsigned char *final) {
void
debugCommand
(
redisClient
*
c
)
{
if
(
!
strcasecmp
(
c
->
argv
[
1
]
->
ptr
,
"segfault"
))
{
*
((
char
*
)
-
1
)
=
'x'
;
}
else
if
(
!
strcasecmp
(
c
->
argv
[
1
]
->
ptr
,
"flushcache"
))
{
if
(
!
server
.
ds_enabled
)
{
addReplyError
(
c
,
"DEBUG FLUSHCACHE called with diskstore off."
);
return
;
}
else
{
emptyDb
();
addReply
(
c
,
shared
.
ok
);
return
;
}
}
else
if
(
!
strcasecmp
(
c
->
argv
[
1
]
->
ptr
,
"reload"
))
{
if
(
server
.
ds_enabled
)
{
addReply
(
c
,
shared
.
ok
);
return
;
}
if
(
rdbSave
(
server
.
dbfilename
)
!=
REDIS_OK
)
{
addReply
(
c
,
shared
.
err
);
return
;
...
...
src/diskstore.c
浏览文件 @
69bfffb4
...
...
@@ -456,7 +456,7 @@ void *dsRdbSave_thread(void *arg) {
/* Use RENAME to make sure the DB file is changed atomically only
* if the generate DB file is ok. */
if
(
rename
(
tmpfile
,
filename
)
==
-
1
)
{
redisLog
(
REDIS_WARNING
,
"Error moving temp DB file on the final destination: %s"
,
strerror
(
errno
));
redisLog
(
REDIS_WARNING
,
"Error moving temp DB file on the final destination: %s
(diskstore)
"
,
strerror
(
errno
));
unlink
(
tmpfile
);
dsRdbSaveSetState
(
REDIS_BGSAVE_THREAD_DONE_ERR
);
return
NULL
;
...
...
src/dscache.c
浏览文件 @
69bfffb4
...
...
@@ -185,8 +185,7 @@ int cacheFreeOneEntry(void) {
* are swappable objects */
int
maxtries
=
100
;
if
(
dictSize
(
db
->
dict
)
==
0
)
continue
;
for
(
i
=
0
;
i
<
5
;
i
++
)
{
for
(
i
=
0
;
i
<
5
&&
dictSize
(
db
->
dict
);
i
++
)
{
dictEntry
*
de
;
double
swappability
;
robj
keyobj
;
...
...
tests/test_helper.tcl
浏览文件 @
69bfffb4
...
...
@@ -13,7 +13,7 @@ set ::host 127.0.0.1
set ::port 16379
set ::traceleaks 0
set ::valgrind 0
set ::verbose
0
set ::verbose
1
set ::denytags
{}
set ::allowtags
{}
set ::external 0
;
# If
"1"
this means, we are running against external instance
...
...
@@ -104,14 +104,13 @@ proc s {args} {
}
proc cleanup
{}
{
if
{
$::diskstore
}
{
puts
"Cleanup: warning may take some minute (diskstore enabled)"
}
puts
"Cleanup: warning may take some time..."
catch
{
exec rm -rf
{*}
[
glob tests/tmp/redis.conf.*
]}
catch
{
exec rm -rf
{*}
[
glob tests/tmp/server.*
]}
}
proc execute_everything
{}
{
if 0
{
execute_tests
"unit/auth"
execute_tests
"unit/protocol"
execute_tests
"unit/basic"
...
...
@@ -128,9 +127,11 @@ proc execute_everything {} {
execute_tests
"integration/aof"
# execute_tests
"integration/redis-cli"
execute_tests
"unit/pubsub"
}
# run tests with diskstore enabled
set ::diskstore 1
lappend ::denytags nodiskstore
set ::global_overrides
{
diskstore-enabled yes
}
execute_tests
"unit/protocol"
execute_tests
"unit/basic"
...
...
tests/unit/other.tcl
浏览文件 @
69bfffb4
...
...
@@ -46,7 +46,7 @@ start_server {tags {"other"}} {
set _ $err
}
{
*invalid*
}
tags
{
consistency
}
{
tags
{
consistency
nodiskstore
}
{
if
{
!
[
catch
{
package require sha1
}]}
{
test
{
Check consistency of different data types after a reload
}
{
r flushdb
...
...
@@ -102,12 +102,19 @@ start_server {tags {"other"}} {
r flushdb
r set x 10
r expire x 1000
r save
r debug reload
if
{
$::diskstore
}
{
r debug flushcache
}
else
{
r save
r debug reload
}
set ttl
[
r ttl x
]
set e1
[
expr
{
$ttl
> 900 && $ttl <= 1000
}]
r bgrewriteaof
waitForBgrewriteaof r
if
{
!$::diskstore
}
{
r bgrewriteaof
waitForBgrewriteaof r
r debug loadaof
}
set ttl
[
r ttl x
]
set e2
[
expr
{
$ttl
> 900 && $ttl <= 1000
}]
list $e1 $e2
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录