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
798d9e55
Commit
798d9e55
authored
Mar 07, 2010
by
Pieter Noordhuis
Browse files
added ZREVRANK
parent
18e61fa2
Changes
2
Hide whitespace changes
Inline
Side-by-side
redis.c
View file @
798d9e55
...
@@ -666,6 +666,7 @@ static void brpopCommand(redisClient *c);
...
@@ -666,6 +666,7 @@ static void brpopCommand(redisClient *c);
static void appendCommand(redisClient *c);
static void appendCommand(redisClient *c);
static void substrCommand(redisClient *c);
static void substrCommand(redisClient *c);
static void zrankCommand(redisClient *c);
static void zrankCommand(redisClient *c);
static void zrevrankCommand(redisClient *c);
static void hsetCommand(redisClient *c);
static void hsetCommand(redisClient *c);
static void hgetCommand(redisClient *c);
static void hgetCommand(redisClient *c);
...
@@ -722,6 +723,7 @@ static struct redisCommand cmdTable[] = {
...
@@ -722,6 +723,7 @@ static struct redisCommand cmdTable[] = {
{"zcard",zcardCommand,2,REDIS_CMD_INLINE,1,1,1},
{"zcard",zcardCommand,2,REDIS_CMD_INLINE,1,1,1},
{"zscore",zscoreCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,1,1,1},
{"zscore",zscoreCommand,3,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,1,1,1},
{"zrank",zrankCommand,3,REDIS_CMD_INLINE,1,1,1},
{"zrank",zrankCommand,3,REDIS_CMD_INLINE,1,1,1},
{"zrevrank",zrevrankCommand,3,REDIS_CMD_INLINE,1,1,1},
{"hset",hsetCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,1,1,1},
{"hset",hsetCommand,4,REDIS_CMD_BULK|REDIS_CMD_DENYOOM,1,1,1},
{"hget",hgetCommand,3,REDIS_CMD_BULK,1,1,1},
{"hget",hgetCommand,3,REDIS_CMD_BULK,1,1,1},
{"incrby",incrbyCommand,3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,1,1,1},
{"incrby",incrbyCommand,3,REDIS_CMD_INLINE|REDIS_CMD_DENYOOM,1,1,1},
...
@@ -5546,7 +5548,7 @@ static void zscoreCommand(redisClient *c) {
...
@@ -5546,7 +5548,7 @@ static void zscoreCommand(redisClient *c) {
}
}
}
}
static void zrankCommand(redisClient *c) {
static void zrank
Generic
Command(redisClient *c
, int reverse
) {
robj *o;
robj *o;
o = lookupKeyRead(c->db,c->argv[1]);
o = lookupKeyRead(c->db,c->argv[1]);
if (o == NULL) {
if (o == NULL) {
...
@@ -5570,13 +5572,25 @@ static void zrankCommand(redisClient *c) {
...
@@ -5570,13 +5572,25 @@ static void zrankCommand(redisClient *c) {
double *score = dictGetEntryVal(de);
double *score = dictGetEntryVal(de);
rank = zslGetRank(zsl, *score, c->argv[2]);
rank = zslGetRank(zsl, *score, c->argv[2]);
if (rank) {
if (rank) {
addReplyLong(c, rank-1);
if (reverse) {
addReplyLong(c, zsl->length - rank);
} else {
addReplyLong(c, rank-1);
}
} else {
} else {
addReply(c,shared.nullbulk);
addReply(c,shared.nullbulk);
}
}
}
}
}
}
static void zrankCommand(redisClient *c) {
zrankGenericCommand(c, 0);
}
static void zrevrankCommand(redisClient *c) {
zrankGenericCommand(c, 1);
}
/* ==================================== Hash ================================ */
/* ==================================== Hash ================================ */
static void hsetCommand(redisClient *c) {
static void hsetCommand(redisClient *c) {
int update = 0;
int update = 0;
...
...
test-redis.tcl
View file @
798d9e55
...
@@ -1204,6 +1204,10 @@ proc main {server port} {
...
@@ -1204,6 +1204,10 @@ proc main {server port} {
list
[
$r
zrank zranktmp x
]
[
$r
zrank zranktmp y
]
[
$r
zrank zranktmp z
]
list
[
$r
zrank zranktmp x
]
[
$r
zrank zranktmp y
]
[
$r
zrank zranktmp z
]
}
{
0 1 2
}
}
{
0 1 2
}
test
{
ZREVRANK basics
}
{
list
[
$r
zrevrank zranktmp x
]
[
$r
zrevrank zranktmp y
]
[
$r
zrevrank zranktmp z
]
}
{
2 1 0
}
test
{
ZRANK - after deletion
}
{
test
{
ZRANK - after deletion
}
{
$r zrem zranktmp y
$r zrem zranktmp y
list
[
$r
zrank zranktmp x
]
[
$r
zrank zranktmp z
]
list
[
$r
zrank zranktmp x
]
[
$r
zrank zranktmp z
]
...
...
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