Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
d4a3cfed
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 搜索 >>
提交
d4a3cfed
编写于
11月 14, 2011
作者:
A
antirez
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'unstable' into incrbyfloat
上级
70023978
762eea07
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
22 addition
and
8 deletion
+22
-8
src/aof.c
src/aof.c
+2
-2
src/debug.c
src/debug.c
+1
-1
src/rdb.c
src/rdb.c
+1
-1
src/redis.c
src/redis.c
+3
-3
src/redis.h
src/redis.h
+1
-1
tests/unit/expire.tcl
tests/unit/expire.tcl
+14
-0
未找到文件。
src/aof.c
浏览文件 @
d4a3cfed
...
...
@@ -431,7 +431,7 @@ int rewriteAppendOnlyFile(char *filename) {
FILE
*
fp
;
char
tmpfile
[
256
];
int
j
;
time_t
now
=
time
(
NULL
);
long
long
now
=
mstime
(
);
/* Note that we have to use a different temp name here compared to the
* one used by rewriteAppendOnlyFileBackground() function. */
...
...
@@ -462,7 +462,7 @@ int rewriteAppendOnlyFile(char *filename) {
while
((
de
=
dictNext
(
di
))
!=
NULL
)
{
sds
keystr
;
robj
key
,
*
o
;
time_t
expiretime
;
long
long
expiretime
;
keystr
=
dictGetKey
(
de
);
o
=
dictGetVal
(
de
);
...
...
src/debug.c
浏览文件 @
d4a3cfed
...
...
@@ -91,7 +91,7 @@ void computeDatasetDigest(unsigned char *final) {
while
((
de
=
dictNext
(
di
))
!=
NULL
)
{
sds
key
;
robj
*
keyobj
,
*
o
;
time_t
expiretime
;
long
long
expiretime
;
memset
(
digest
,
0
,
20
);
/* This key-val digest */
key
=
dictGetKey
(
de
);
...
...
src/rdb.c
浏览文件 @
d4a3cfed
...
...
@@ -597,7 +597,7 @@ int rdbSave(char *filename) {
dictEntry
*
de
;
char
tmpfile
[
256
];
int
j
;
time_t
now
=
mstime
();
long
long
now
=
mstime
();
FILE
*
fp
;
rio
rdb
;
...
...
src/redis.c
浏览文件 @
d4a3cfed
...
...
@@ -563,17 +563,17 @@ void activeExpireCycle(void) {
* of the keys were expired. */
do
{
long
num
=
dictSize
(
db
->
expires
);
time_t
now
=
time
(
NULL
);
long
long
now
=
mstime
(
);
expired
=
0
;
if
(
num
>
REDIS_EXPIRELOOKUPS_PER_CRON
)
num
=
REDIS_EXPIRELOOKUPS_PER_CRON
;
while
(
num
--
)
{
dictEntry
*
de
;
time_t
t
;
long
long
t
;
if
((
de
=
dictGetRandomKey
(
db
->
expires
))
==
NULL
)
break
;
t
=
(
time_t
)
dictGet
Val
(
de
);
t
=
dictGetSignedInteger
Val
(
de
);
if
(
now
>
t
)
{
sds
key
=
dictGetKey
(
de
);
robj
*
keyobj
=
createStringObject
(
key
,
sdslen
(
key
));
...
...
src/redis.h
浏览文件 @
d4a3cfed
...
...
@@ -39,7 +39,7 @@
/* Static server configuration */
#define REDIS_SERVERPORT 6379
/* TCP port */
#define REDIS_MAXIDLETIME
(60*5)
/* default client timeout
*/
#define REDIS_MAXIDLETIME
0
/* default client timeout: infinite
*/
#define REDIS_IOBUF_LEN (1024*16)
#define REDIS_LOADBUF_LEN 1024
#define REDIS_DEFAULT_DBNUM 16
...
...
tests/unit/expire.tcl
浏览文件 @
d4a3cfed
...
...
@@ -127,4 +127,18 @@ start_server {tags {"expire"}} {
set ttl
[
r pttl x
]
assert
{
$ttl
> 900 && $ttl <= 1000
}
}
test
{
Redis should actively expire keys incrementally
}
{
r flushdb
r psetex key1 500 a
r psetex key2 500 a
r psetex key3 500 a
set size1
[
r dbsize
]
# Redis expires random keys ten times every second so we are
# fairly sure that all the three keys should be evicted after
# one second.
after 1000
set size2
[
r dbsize
]
list $size1 $size2
}
{
3 0
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录