Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
3d9704d3
Commit
3d9704d3
authored
Jul 28, 2011
by
antirez
Browse files
Merge remote branch 'origin/unstable' into unstable
parents
243b783f
47cadab4
Changes
5
Show whitespace changes
Inline
Side-by-side
TODO
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment