x must be the prefix for scan, for #121

This commit is contained in:
siddontang 2015-01-24 11:07:26 +08:00
parent 053da7736c
commit 31fc7f0375
10 changed files with 168 additions and 14 deletions

View File

@ -1,4 +1,4 @@
//This file was generated by .tools/generate_commands.py on Thu Nov 27 2014 13:42:44 +0800 //This file was generated by .tools/generate_commands.py on Sat Jan 24 2015 10:59:30 +0800
package main package main
var helpCommands = [][]string{ var helpCommands = [][]string{
@ -111,8 +111,18 @@ var helpCommands = [][]string{
{"SYNC", "logid", "Replication"}, {"SYNC", "logid", "Replication"},
{"TIME", "-", "Server"}, {"TIME", "-", "Server"},
{"TTL", "key", "KV"}, {"TTL", "key", "KV"},
{"XBREVSCAN", "key [MATCH match] [COUNT count]", "Bitmap"},
{"XBSCAN", "key [MATCH match] [COUNT count]", "Bitmap"},
{"XHREVSCAN", "key [MATCH match] [COUNT count]", "Hash"},
{"XHSCAN", "key [MATCH match] [COUNT count]", "Hash"},
{"XLREVSCAN", "key [MATCH match] [COUNT count]", "List"},
{"XLSCAN", "key [MATCH match] [COUNT count]", "List"},
{"XREVSCAN", "key [MATCH match] [COUNT count]", "KV"}, {"XREVSCAN", "key [MATCH match] [COUNT count]", "KV"},
{"XSCAN", "key [MATCH match] [COUNT count]", "KV"}, {"XSCAN", "key [MATCH match] [COUNT count]", "KV"},
{"XSREVSCAN", "key [MATCH match] [COUNT count]", "Set"},
{"XSSCAN", "key [MATCH match] [COUNT count]", "Set"},
{"XZREVSCAN", "key [MATCH match] [COUNT count]", "ZSet"},
{"XZSCAN", "key [MATCH match] [COUNT count]", "ZSet"},
{"ZADD", "key score member [score member ...]", "ZSet"}, {"ZADD", "key score member [score member ...]", "ZSet"},
{"ZCARD", "key", "ZSet"}, {"ZCARD", "key", "ZSet"},
{"ZCLEAR", "key", "ZSet"}, {"ZCLEAR", "key", "ZSet"},

View File

@ -50,11 +50,11 @@ Transaction API:
LedisDB supplies `xscan`, `xrevscan`, etc, to fetch data iteratively and reverse iteratively. LedisDB supplies `xscan`, `xrevscan`, etc, to fetch data iteratively and reverse iteratively.
+ KV: `xscan`, `xrevscan` + KV: `xscan`, `xrevscan`
+ Hash: `hxscan`, `hxrevscan` + Hash: `hxscan`, `hxrevscan`, `xhscan`, `xhrevscan`
+ List: `lxscan`, `lxrevscan` + List: `lxscan`, `lxrevscan`, `xlscan`, `xlrevscan`
+ Set: `sxscan` , `sxrevscan` + Set: `sxscan` , `sxrevscan`, `xsscan`, `xsrevscan`
+ Zset: `zxscan`, `zxrevscan` + Zset: `zxscan`, `zxrevscan`, `xzscan`, `xzrevscan`
+ Bitmap: `bxscan`, `bxrevscan` + Bitmap: `bxscan`, `bxrevscan`, `xbscan`, `xbrevscan`
## DUMP ## DUMP

View File

@ -724,6 +724,66 @@
"readonly": true "readonly": true
}, },
"XBSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Bitmap",
"readonly": true
},
"XLSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "List",
"readonly": true
},
"XHSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Hash",
"readonly": true
},
"XSSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Set",
"readonly": true
},
"XZSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "ZSet",
"readonly": true
},
"XHREVSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Hash",
"readonly": true
},
"XLREVSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "List",
"readonly": true
},
"XSREVSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Set",
"readonly": true
},
"XZREVSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "ZSet",
"readonly": true
},
"XBREVSCAN": {
"arguments": "key [MATCH match] [COUNT count]",
"group": "Bitmap",
"readonly": true
},
"RESTORE": { "RESTORE": {
"arguments" : "key ttl value", "arguments" : "key ttl value",
"group" : "Server", "group" : "Server",

View File

@ -50,6 +50,8 @@ Table of Contents
- [HPERSIST key](#hpersist-key) - [HPERSIST key](#hpersist-key)
- [HXSCAN key [MATCH match] [COUNT count]](#hxscan-key-match-match-count-count) - [HXSCAN key [MATCH match] [COUNT count]](#hxscan-key-match-match-count-count)
- [HXREVSCAN key [MATCH match] [COUNT count]](#hxrevscan-key-match-match-count-count) - [HXREVSCAN key [MATCH match] [COUNT count]](#hxrevscan-key-match-match-count-count)
- [XHSCAN key [MATCH match] [COUNT count]](#xhscan-key-match-match-count-count)
- [XHREVSCAN key [MATCH match] [COUNT count]](#xhrevscan-key-match-match-count-count)
- [HDUMP key](#hdump-key) - [HDUMP key](#hdump-key)
- [List](#list) - [List](#list)
- [BLPOP key [key ...] timeout](#blpop-key-key--timeout) - [BLPOP key [key ...] timeout](#blpop-key-key--timeout)
@ -69,6 +71,8 @@ Table of Contents
- [LPERSIST key](#lpersist-key) - [LPERSIST key](#lpersist-key)
- [LXSCAN key [MATCH match] [COUNT count]](#lxscan-key-match-match-count-count) - [LXSCAN key [MATCH match] [COUNT count]](#lxscan-key-match-match-count-count)
- [LXREVSCAN key [MATCH match] [COUNT count]](#lxrevscan-key-match-match-count-count) - [LXREVSCAN key [MATCH match] [COUNT count]](#lxrevscan-key-match-match-count-count)
- [XLSCAN key [MATCH match] [COUNT count]](#xlscan-key-match-match-count-count)
- [XLREVSCAN key [MATCH match] [COUNT count]](#xlrevscan-key-match-match-count-count)
- [LDUMP key](#ldump-key) - [LDUMP key](#ldump-key)
- [Set](#set) - [Set](#set)
- [SADD key member [member ...]](#sadd-key-member-member-) - [SADD key member [member ...]](#sadd-key-member-member-)
@ -90,6 +94,8 @@ Table of Contents
- [SPERSIST key](#spersist-key) - [SPERSIST key](#spersist-key)
- [SXSCAN key [MATCH match] [COUNT count]](#sxscan-key-match-match-count-count) - [SXSCAN key [MATCH match] [COUNT count]](#sxscan-key-match-match-count-count)
- [SXREVSCAN key [MATCH match] [COUNT count]](#sxrevscan-key-match-match-count-count) - [SXREVSCAN key [MATCH match] [COUNT count]](#sxrevscan-key-match-match-count-count)
- [XSSCAN key [MATCH match] [COUNT count]](#xsscan-key-match-match-count-count)
- [XSREVSCAN key [MATCH match] [COUNT count]](#xsrevscan-key-match-match-count-count)
- [SDUMP key](#sdump-key) - [SDUMP key](#sdump-key)
- [ZSet](#zset) - [ZSet](#zset)
- [ZADD key score member [score member ...]](#zadd-key-score-member-score-member-) - [ZADD key score member [score member ...]](#zadd-key-score-member-score-member-)
@ -118,6 +124,8 @@ Table of Contents
](#zinterstore-destination-numkeys-key-key--weights-weight-weight--aggregate-summinmax) ](#zinterstore-destination-numkeys-key-key--weights-weight-weight--aggregate-summinmax)
- [ZXSCAN key [MATCH match] [COUNT count]](#zxscan-key-match-match-count-count) - [ZXSCAN key [MATCH match] [COUNT count]](#zxscan-key-match-match-count-count)
- [ZXREVSCAN key [MATCH match] [COUNT count]](#zxrevscan-key-match-match-count-count) - [ZXREVSCAN key [MATCH match] [COUNT count]](#zxrevscan-key-match-match-count-count)
- [XZSCAN key [MATCH match] [COUNT count]](#xzscan-key-match-match-count-count)
- [XZREVSCAN key [MATCH match] [COUNT count]](#xzrevscan-key-match-match-count-count)
- [ZRANGEBYLEX key min max [LIMIT offset count]](#zrangebylex-key-min-max-limit-offset-count) - [ZRANGEBYLEX key min max [LIMIT offset count]](#zrangebylex-key-min-max-limit-offset-count)
- [ZREMRANGEBYLEX key min max](#zremrangebylex-key-min-max) - [ZREMRANGEBYLEX key min max](#zremrangebylex-key-min-max)
- [ZLEXCOUNT key min max](#zlexcount-key-min-max) - [ZLEXCOUNT key min max](#zlexcount-key-min-max)
@ -135,6 +143,8 @@ Table of Contents
- [BPERSIST key](#bpersist-key) - [BPERSIST key](#bpersist-key)
- [BXSCAN key [MATCH match] [COUNT count]](#bxscan-key-match-match-count-count) - [BXSCAN key [MATCH match] [COUNT count]](#bxscan-key-match-match-count-count)
- [BXREVSCAN key [MATCH match] [COUNT count]](#bxrevscan-key-match-match-count-count) - [BXREVSCAN key [MATCH match] [COUNT count]](#bxrevscan-key-match-match-count-count)
- [XBSCAN key [MATCH match] [COUNT count]](#xbscan-key-match-match-count-count)
- [XBREVSCAN key [MATCH match] [COUNT count]](#xbrevscan-key-match-match-count-count)
- [Replication](#replication) - [Replication](#replication)
- [SLAVEOF host port [RESTART] [READONLY]](#slaveof-host-port-restart-readonly) - [SLAVEOF host port [RESTART] [READONLY]](#slaveof-host-port-restart-readonly)
- [FULLSYNC [NEW]](#fullsync-new) - [FULLSYNC [NEW]](#fullsync-new)
@ -981,6 +991,19 @@ Reverse iterate Hash keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information. See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### XHSCAN key [MATCH match] [COUNT count]
Iterate Hash keys incrementally.
See [XSCAN](#xscan-key-match-match-count-count) for more information.
### XHREVSCAN key [MATCH match] [COUNT count]
Reverse iterate Hash keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### HDUMP key ### HDUMP key
See [DUMP](#dump-key) for more information. See [DUMP](#dump-key) for more information.
@ -1319,6 +1342,19 @@ Reverse iterate list keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information. See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### XLSCAN key [MATCH match] [COUNT count]
Iterate list keys incrementally.
See [XSCAN](#xscan-key-match-match-count-count) for more information.
### XLREVSCAN key [MATCH match] [COUNT count]
Reverse iterate list keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### LDUMP key ### LDUMP key
See [DUMP](#dump-key) for more information. See [DUMP](#dump-key) for more information.
@ -1758,6 +1794,20 @@ Reverse iterate Set keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information. See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### XSSCAN key [MATCH match] [COUNT count]
Iterate Set keys incrementally.
See [XSCAN](#xscan-key-match-match-count-count) for more information.
### XSREVSCAN key [MATCH match] [COUNT count]
Reverse iterate Set keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### SDUMP key ### SDUMP key
See [DUMP](#dump-key) for more information. See [DUMP](#dump-key) for more information.
@ -2393,6 +2443,18 @@ Reverse iterate ZSet keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information. See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### XZSCAN key [MATCH match] [COUNT count]
Iterate ZSet keys incrementally.
See [XSCAN](#xscan-key-match-match-count-count) for more information.
### XZREVSCAN key [MATCH match] [COUNT count]
Reverse iterate ZSet keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### ZRANGEBYLEX key min max [LIMIT offset count] ### ZRANGEBYLEX key min max [LIMIT offset count]
When all the elements in a sorted set are inserted with the same score, in order to force lexicographical ordering, this command returns all the elements in the sorted set at key with a value between min and max. When all the elements in a sorted set are inserted with the same score, in order to force lexicographical ordering, this command returns all the elements in the sorted set at key with a value between min and max.
@ -2633,6 +2695,18 @@ Reverse iterate Bitmap keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information. See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
### XBSCAN key [MATCH match] [COUNT count]
Iterate Bitmap keys incrementally.
See [XSCAN](#xscan-key-match-match-count-count) for more information.
### XBREVSCAN key [MATCH match] [COUNT count]
Reverse iterate Bitmap keys incrementally.
See [XREVSCAN](#xrevscan-key-match-match-count-count) for more information.
## Replication ## Replication

View File

@ -296,4 +296,6 @@ func init() {
register("bpersist", bpersistCommand) register("bpersist", bpersistCommand)
register("bxscan", bxscanCommand) register("bxscan", bxscanCommand)
register("bxrevscan", bxrevscanCommand) register("bxrevscan", bxrevscanCommand)
register("xbscan", bxscanCommand)
register("xbrevscan", bxrevscanCommand)
} }

View File

@ -323,4 +323,6 @@ func init() {
register("hpersist", hpersistCommand) register("hpersist", hpersistCommand)
register("hxscan", hxscanCommand) register("hxscan", hxscanCommand)
register("hxrevscan", hxrevscanCommand) register("hxrevscan", hxrevscanCommand)
register("xhscan", hxscanCommand)
register("xhrevscan", hxrevscanCommand)
} }

View File

@ -307,4 +307,6 @@ func init() {
register("lpersist", lpersistCommand) register("lpersist", lpersistCommand)
register("lxscan", lxscanCommand) register("lxscan", lxscanCommand)
register("lxrevscan", lxrevscanCommand) register("lxrevscan", lxrevscanCommand)
register("xlscan", lxscanCommand)
register("xlrevscan", lxrevscanCommand)
} }

View File

@ -290,4 +290,6 @@ func init() {
register("spersist", spersistCommand) register("spersist", spersistCommand)
register("sxscan", sxscanCommand) register("sxscan", sxscanCommand)
register("sxrevscan", sxrevscanCommand) register("sxrevscan", sxrevscanCommand)
register("xsscan", sxscanCommand)
register("xsrevscan", sxrevscanCommand)
} }

View File

@ -804,4 +804,6 @@ func init() {
register("zpersist", zpersistCommand) register("zpersist", zpersistCommand)
register("zxscan", zxscanCommand) register("zxscan", zxscanCommand)
register("zxrevscan", zxrevscanCommand) register("zxrevscan", zxrevscanCommand)
register("xzscan", zxscanCommand)
register("xzrevscan", zxrevscanCommand)
} }

View File

@ -118,8 +118,8 @@ func testHashScan(t *testing.T, c *ledis.Client) {
} }
} }
checkScan(t, c, "hxscan") checkScan(t, c, "xhscan")
checkRevScan(t, c, "hxrevscan") checkRevScan(t, c, "xhrevscan")
} }
func testListScan(t *testing.T, c *ledis.Client) { func testListScan(t *testing.T, c *ledis.Client) {
@ -129,8 +129,8 @@ func testListScan(t *testing.T, c *ledis.Client) {
} }
} }
checkScan(t, c, "lxscan") checkScan(t, c, "xlscan")
checkRevScan(t, c, "lxrevscan") checkRevScan(t, c, "xlrevscan")
} }
func testZSetScan(t *testing.T, c *ledis.Client) { func testZSetScan(t *testing.T, c *ledis.Client) {
@ -151,8 +151,8 @@ func testSetScan(t *testing.T, c *ledis.Client) {
} }
} }
checkScan(t, c, "sxscan") checkScan(t, c, "xsscan")
checkRevScan(t, c, "sxrevscan") checkRevScan(t, c, "xsrevscan")
} }
func testBitScan(t *testing.T, c *ledis.Client) { func testBitScan(t *testing.T, c *ledis.Client) {
@ -162,6 +162,6 @@ func testBitScan(t *testing.T, c *ledis.Client) {
} }
} }
checkScan(t, c, "bxscan") checkScan(t, c, "xbscan")
checkRevScan(t, c, "bxrevscan") checkRevScan(t, c, "xbrevscan")
} }