Skip to content

Commit 8c7688b

Browse files
committed
add more commands
1 parent ab7f7ca commit 8c7688b

File tree

1 file changed

+112
-10
lines changed

1 file changed

+112
-10
lines changed

rb.go

Lines changed: 112 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ var (
2222
cpus = flag.Int("cpu", runtime.GOMAXPROCS(-1), "max cpus count to run (default logical cpu cores)")
2323
d = flag.Int("d", 16, "data size of SET/GET/... value in bytes")
2424
r = flag.Int("r", 10000, "use random keys for SET/GET")
25+
f = flag.Int("f", 100, "Use random fields for SADD/HSET/... (default 100)")
2526
n = flag.Int("n", 1000000, "total number of requests")
2627
t = flag.String("t", "set", "Only run the comma separated list of tests.")
2728
pipeline = flag.Int("P", 1, "pipeline <numreq> requests. (default 1 no pipeline).")
@@ -60,11 +61,17 @@ func main() {
6061
}
6162
}
6263

64+
func keyN(n int) string {
65+
return fmt.Sprintf("%0"+strconv.Itoa(n)+"d", rand.Intn(*r))
66+
}
6367
func key() string {
64-
return fmt.Sprintf("mystring:%012d", rand.Intn(*r))
68+
return fmt.Sprintf("%d", rand.Intn(*r))
69+
}
70+
func keyField() string {
71+
return fmt.Sprintf("%d", rand.Intn(*f))
6572
}
66-
func numkey() string {
67-
return fmt.Sprintf("mynum:%012d", rand.Intn(*r))
73+
func keyFieldN(n int) string {
74+
return fmt.Sprintf("%0"+strconv.Itoa(n)+"d", rand.Intn(*f))
6875
}
6976

7077
var value = strings.Repeat("A", *d)
@@ -79,37 +86,132 @@ var benches = map[string]benchFunc{
7986
},
8087
"set": func(name string, addr string, opts *redbench.Options) {
8188
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
82-
return redbench.AppendCommand(buf, "SET", key(), value)
89+
return redbench.AppendCommand(buf, "SET", "mystring:"+keyN(12), value)
8390
})
8491
},
8592
"get": func(name string, addr string, opts *redbench.Options) {
8693
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
87-
return redbench.AppendCommand(buf, "GET", key())
94+
return redbench.AppendCommand(buf, "GET", "mystring:"+keyN(12))
8895
})
8996
},
9097
"getset": func(name string, addr string, opts *redbench.Options) {
9198
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
92-
return redbench.AppendCommand(buf, "GETSET", key(), value)
99+
return redbench.AppendCommand(buf, "GETSET", "mystring:"+keyN(12), value)
93100
})
94101
},
95102
"mset": func(name string, addr string, opts *redbench.Options) {
96103
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
97-
return redbench.AppendCommand(buf, "MSET", key(), value, key(), value, key(), value)
104+
return redbench.AppendCommand(buf, "MSET", "mystring:"+keyN(12), value, "mystring:"+keyN(12), value, "mystring:"+keyN(12), value)
98105
})
99106
},
100107
"mget": func(name string, addr string, opts *redbench.Options) {
101108
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
102-
return redbench.AppendCommand(buf, "MGET", key(), key(), key())
109+
return redbench.AppendCommand(buf, "MGET", "mystring:"+keyN(12), "mystring:"+keyN(12), "mystring:"+keyN(12))
103110
})
104111
},
105112
"incr": func(name string, addr string, opts *redbench.Options) {
106113
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
107-
return redbench.AppendCommand(buf, "INCR", numkey())
114+
return redbench.AppendCommand(buf, "INCR", "mynum:"+keyN(12))
108115
})
109116
},
110117
"decr": func(name string, addr string, opts *redbench.Options) {
111118
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
112-
return redbench.AppendCommand(buf, "DECR", numkey())
119+
return redbench.AppendCommand(buf, "DECR", "mynum:"+keyN(12))
120+
})
121+
},
122+
"hset": func(name string, addr string, opts *redbench.Options) {
123+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
124+
return redbench.AppendCommand(buf, "HSET", "myhash:"+keyN(12), "field:"+keyFieldN(14), value)
125+
})
126+
},
127+
"hget": func(name string, addr string, opts *redbench.Options) {
128+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
129+
return redbench.AppendCommand(buf, "HGET", "myhash:"+keyN(12), "field:"+keyFieldN(14))
130+
})
131+
},
132+
"hdel": func(name string, addr string, opts *redbench.Options) {
133+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
134+
return redbench.AppendCommand(buf, "HDEL", "myhash:"+keyN(12), "field:"+keyFieldN(14))
135+
})
136+
},
137+
"hmset": func(name string, addr string, opts *redbench.Options) {
138+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
139+
return redbench.AppendCommand(buf, "HMSET", "myhash:"+keyN(12), "field:"+keyFieldN(14), value, "field:"+keyFieldN(14), value, "field:"+keyFieldN(14), value)
140+
})
141+
},
142+
"hmget": func(name string, addr string, opts *redbench.Options) {
143+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
144+
return redbench.AppendCommand(buf, "HMGET", "myhash:"+keyN(12), "field:"+keyFieldN(14), "field:"+keyFieldN(14), "field:"+keyFieldN(14))
145+
})
146+
},
147+
"hkeys": func(name string, addr string, opts *redbench.Options) {
148+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
149+
return redbench.AppendCommand(buf, "HKEYS", "myhash:"+keyN(12))
150+
})
151+
},
152+
"hvals": func(name string, addr string, opts *redbench.Options) {
153+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
154+
return redbench.AppendCommand(buf, "HVALS", "myhash:"+keyN(12))
155+
})
156+
},
157+
"hgetall": func(name string, addr string, opts *redbench.Options) {
158+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
159+
return redbench.AppendCommand(buf, "HGETALL", "myhash:"+keyN(12))
160+
})
161+
},
162+
"lpush": func(name string, addr string, opts *redbench.Options) {
163+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
164+
return redbench.AppendCommand(buf, "LPUSH", "mylist:"+keyN(12), value)
165+
})
166+
},
167+
"lpop": func(name string, addr string, opts *redbench.Options) {
168+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
169+
return redbench.AppendCommand(buf, "LPOP", "mylist:"+keyN(12))
170+
})
171+
},
172+
"rpush": func(name string, addr string, opts *redbench.Options) {
173+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
174+
return redbench.AppendCommand(buf, "RPUSH", "mylist:"+keyN(12), value)
175+
})
176+
},
177+
"rpop": func(name string, addr string, opts *redbench.Options) {
178+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
179+
return redbench.AppendCommand(buf, "RPOP", "mylist:"+keyN(12))
180+
})
181+
},
182+
"lrange": func(name string, addr string, opts *redbench.Options) {
183+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
184+
return redbench.AppendCommand(buf, "LRANGE", "mylist:"+keyN(12), "0", "1000")
185+
})
186+
},
187+
"sadd": func(name string, addr string, opts *redbench.Options) {
188+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
189+
return redbench.AppendCommand(buf, "SADD", "myset::"+keyN(12), keyFieldN(14))
190+
})
191+
},
192+
"spop": func(name string, addr string, opts *redbench.Options) {
193+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
194+
return redbench.AppendCommand(buf, "SPOP", "myset::"+keyN(12))
195+
})
196+
},
197+
"smember": func(name string, addr string, opts *redbench.Options) {
198+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
199+
return redbench.AppendCommand(buf, "smember", "myset::"+keyN(12))
200+
})
201+
},
202+
"sismember": func(name string, addr string, opts *redbench.Options) {
203+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
204+
return redbench.AppendCommand(buf, "SISMEMBERS", "myset::"+keyN(12), keyFieldN(14))
205+
})
206+
},
207+
"zadd": func(name string, addr string, opts *redbench.Options) {
208+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
209+
return redbench.AppendCommand(buf, "ZADD", "mysortedset::"+keyN(12), key(), keyFieldN(14))
210+
})
211+
},
212+
"zrem": func(name string, addr string, opts *redbench.Options) {
213+
redbench.Bench(strings.ToUpper(name), addr, opts, nil, func(buf []byte) []byte {
214+
return redbench.AppendCommand(buf, "ZREM", "mysortedset::"+keyN(12), keyFieldN(14))
113215
})
114216
},
115217
}

0 commit comments

Comments
 (0)