Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
5a6948fb
Commit
5a6948fb
authored
Mar 24, 2009
by
antirez
Browse files
random tested mode for test-redis.tcl, minor other stuff, version switched to 0.8
parent
cf3f0c01
Changes
4
Show whitespace changes
Inline
Side-by-side
.gitignore
View file @
5a6948fb
...
...
@@ -5,3 +5,4 @@ redis-server
redis-benchmark
doc-tools
mkrelease.sh
release
TODO
View file @
5a6948fb
BETA 8 TODO
- Protocol changes as discussed in the Redis group
- keys expire
- sunion ssub
- write integers in a special way on disk (and on memory?)
...
...
@@ -6,33 +6,4 @@ BETA 8 TODO
- network layer stresser in test in demo
- maxclients directive
- check 'server.dirty' everywere
- replication tests
- command line client. If the last argument of a bulk command is missing get it from stdin. Example:
$ echo "bar" | redis-client SET foo
$ redis-client SET foo bar
$ redis-client GET foo
bar
$
- Make Redis aware of the memory it is using thanks to getrusage() and report this info with the INFO command.
- INFO command: clients, slave/master, requests/second in the last N seconds, memory usage, uptime, dirty, lastsave
FUTURE
ROLLBACK command:
ROLLBACK UNSET x
SET x 10
EXPIRE x 3600
COMMIT
(multiple rollbacks are allowed)
or alternatively
TRANSACTION SET x 1000
TRANSACTION EXPIRE x 1000
COMMIT
but this sucks since there is no way to check the error message.
- Prevent the client to issue SYNC or MONITOR multiple times
- replication automated tests
redis.c
View file @
5a6948fb
...
...
@@ -27,7 +27,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#define REDIS_VERSION "0.0
7
"
#define REDIS_VERSION "0.0
8
"
#include <stdio.h>
#include <stdlib.h>
...
...
test-redis.tcl
View file @
5a6948fb
...
...
@@ -784,37 +784,37 @@ proc redis_sismember {fd key val} {
}
proc redis_sinter
{
fd args
}
{
redis_writenl $fd
"sinter
[
join $args
]
\r\n
"
redis_writenl $fd
"sinter
[
join $args
]
"
redis_multi_bulk_read $fd
}
proc redis_sinterstore
{
fd args
}
{
redis_writenl $fd
"sinterstore
[
join $args
]
\r\n
"
redis_writenl $fd
"sinterstore
[
join $args
]
"
redis_read_retcode $fd
}
proc redis_smembers
{
fd key
}
{
redis_writenl $fd
"smembers
$key
\r\n
"
redis_writenl $fd
"smembers
$key
"
redis_multi_bulk_read $fd
}
proc redis_echo
{
fd str
}
{
redis_writenl $fd
"echo
[
string length $str
]
\r\n
$str
\r\n
"
redis_writenl $fd
"smembers
$key
\r\n
"
redis_writenl $fd
"echo
[
string length $str
]
\r\n
$str
"
redis_writenl $fd
"smembers
$key
"
}
proc redis_save
{
fd
}
{
redis_writenl $fd
"save
\r\n
"
redis_writenl $fd
"save"
redis_read_retcode $fd
}
proc redis_flushall
{
fd
}
{
redis_writenl $fd
"flushall
\r\n
"
redis_writenl $fd
"flushall"
redis_read_retcode $fd
}
proc redis_flushdb
{
fd
}
{
redis_writenl $fd
"flushdb
\r\n
"
redis_writenl $fd
"flushdb"
redis_read_retcode $fd
}
...
...
@@ -823,8 +823,35 @@ proc redis_lrem {fd key count val} {
redis_read_integer $fd
}
proc stress
{}
{
set fd
[
socket 127.0.0.1 6379
]
fconfigure $fd -translation binary
redis_flushall $fd
while 1
{
set randkey
[
expr int
(
rand
()
*10000
)]
set randval
[
expr int
(
rand
()
*10000
)]
set randidx0
[
expr int
(
rand
()
*10
)]
set randidx1
[
expr int
(
rand
()
*10
)]
set cmd
[
expr int
(
rand
()
*10
)]
if
{
$cmd
== 0
}
{
redis_set $fd $randkey $randval
}
if
{
$cmd
== 1
}
{
redis_get $fd $randkey
}
if
{
$cmd
== 2
}
{
redis_incr $fd $randkey
}
if
{
$cmd
== 3
}
{
redis_lpush $fd $randkey $randval
}
if
{
$cmd
== 4
}
{
redis_rpop $fd $randkey
}
if
{
$cmd
== 5
}
{
redis_del $fd $randkey
}
if
{
$cmd
== 6
}
{
redis_lrange $fd $randkey $randidx0 $randidx1
}
if
{
$cmd
== 7
}
{
redis_ltrim $fd $randkey $randidx0 $randidx1
}
if
{
$cmd
== 8
}
{
redis_lindex $fd $randkey $randidx0
}
if
{
$cmd
== 9
}
{
redis_lset $fd $randkey $randidx0 $randval
}
flush stdout
}
close $fd
}
if
{[
llength $argv
]
== 0
}
{
main 127.0.0.1 6379
}
elseif
{[
llength $argv
]
== 1 &&
[
lindex $argv 0
]
eq
{
stress
}}
{
stress
}
else
{
main
[
lindex $argv 0
]
[
lindex $argv 1
]
}
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