Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
3d9704d3
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,发现更多精彩内容 >>
提交
3d9704d3
编写于
7月 28, 2011
作者:
A
antirez
浏览文件
操作
浏览文件
下载
差异文件
Merge remote branch 'origin/unstable' into unstable
上级
243b783f
47cadab4
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
17 addition
and
32 deletion
+17
-32
TODO
TODO
+1
-25
src/Makefile
src/Makefile
+1
-1
src/config.c
src/config.c
+4
-5
src/t_hash.c
src/t_hash.c
+4
-1
tests/unit/type/hash.tcl
tests/unit/type/hash.tcl
+7
-0
未找到文件。
TODO
浏览文件 @
3d9704d3
...
...
@@ -52,42 +52,18 @@ OPTIMIZATIONS
* Redis big lists as linked lists of small ziplists?
Possibly a simple heuristic that join near nodes when some node gets smaller than the low_level, and split it into two if gets bigger than high_level.
REPORTING
=========
* Better INFO output with sections.
RANDOM
======
* Server should abort when getcwd() fails if there is some kind of persistence configured. Check this in the cron loop.
* Clients should be closed as far as the output buffer list is bigger than a given number of elements (configurable in redis.conf)
* Should the redis default configuration, and the default redis.conf, just bind 127.0.0.1?
KNOWN BUGS
==========
* What happens in the following scenario:
1) We are reading an AOF file.
2) SETEX FOO 5 BAR
3) APPEND FOO ZAP
What happens if between 1 and 2 for some reason (system under huge load
or alike) too many time passes? We should prevent expires while the
AOF is loading.
* #519: Slave may have expired keys that were never read in the master (so a DEL
is not sent in the replication channel) but are already expired since
a lot of time. Maybe after a given delay that is undoubltly greater than
the replication link latency we should expire this key on the slave on
access?
DISKSTORE TODO
==============
* Fix FLUSHALL/FLUSHDB: the queue of pending reads/writes should be handled.
* Check that 00/00 and ff/ff exist at startup, otherwise exit with error.
* Implement sync flush option, where data is written synchronously on disk when a command is executed.
* Implement MULTI/EXEC as transaction abstract API to diskstore.c, with transaction_start, transaction_end, and a journal to recover.
* Stop BGSAVE thread on shutdown and any other condition where the child is killed during normal bgsave.
* Fix RANDOMKEY to really do something interesting
* Fix DBSIZE to really do something interesting
* Add a DEBUG command to check if an entry is or not in memory currently
* dscache.c near 236, kobj = createStringObject... we could use static obj.
src/Makefile
浏览文件 @
3d9704d3
...
...
@@ -169,7 +169,7 @@ dependencies:
../deps/jemalloc/lib/libjemalloc.a
:
cd
../deps/jemalloc
&&
./configure
$(JEMALLOC_CFLAGS)
--with-jemalloc-prefix
=
je_
--enable-cc-silence
&&
$(MAKE)
lib/libjemalloc.a
redis-server
:
$(OBJ)
redis-server
:
dependencies
$(OBJ)
$(QUIET_LINK)$(CC)
-o
$(PRGNAME)
$(CCOPT)
$(DEBUG)
$(OBJ)
$(CCLINK)
$(ALLOC_LINK)
../deps/lua/src/liblua.a
redis-benchmark
:
dependencies $(BENCHOBJ)
...
...
src/config.c
浏览文件 @
3d9704d3
...
...
@@ -508,12 +508,11 @@ void configGetCommand(redisClient *c) {
if
(
stringmatch
(
pattern
,
"dir"
,
0
))
{
char
buf
[
1024
];
addReplyBulkCString
(
c
,
"dir"
);
if
(
getcwd
(
buf
,
sizeof
(
buf
))
==
NULL
)
{
if
(
getcwd
(
buf
,
sizeof
(
buf
))
==
NULL
)
buf
[
0
]
=
'\0'
;
}
else
{
addReplyBulkCString
(
c
,
"dir"
);
addReplyBulkCString
(
c
,
buf
);
}
matches
++
;
}
if
(
stringmatch
(
pattern
,
"dbfilename"
,
0
))
{
...
...
src/t_hash.c
浏览文件 @
3d9704d3
...
...
@@ -403,8 +403,11 @@ void hdelCommand(redisClient *c) {
for
(
j
=
2
;
j
<
c
->
argc
;
j
++
)
{
if
(
hashTypeDelete
(
o
,
c
->
argv
[
j
]))
{
if
(
hashTypeLength
(
o
)
==
0
)
dbDelete
(
c
->
db
,
c
->
argv
[
1
]);
deleted
++
;
if
(
hashTypeLength
(
o
)
==
0
)
{
dbDelete
(
c
->
db
,
c
->
argv
[
1
]);
break
;
}
}
}
if
(
deleted
)
{
...
...
tests/unit/type/hash.tcl
浏览文件 @
3d9704d3
...
...
@@ -235,6 +235,13 @@ start_server {tags {"hash"}} {
r hgetall myhash
}
{
b 2
}
test
{
HDEL - hash becomes empty before deleting all specified fields
}
{
r del myhash
r hmset myhash a 1 b 2 c 3
assert_equal 3
[
r hdel myhash a b c d e
]
assert_equal 0
[
r exists myhash
]
}
test
{
HEXISTS
}
{
set rv
{}
set k
[
lindex
[
array names smallhash *
]
0
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录