Skip to content

Commit baab222

Browse files
author
Jonathan Leibiusky
committed
Added sharding using ketama
1 parent f9e7887 commit baab222

File tree

5 files changed

+610
-0
lines changed

5 files changed

+610
-0
lines changed
Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
package redis.clients.jedis;
2+
3+
import java.io.IOException;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.Set;
7+
8+
import redis.clients.util.ShardInfo;
9+
import redis.clients.util.Sharded;
10+
11+
public class ShardedJedis extends Sharded<Jedis> {
12+
public ShardedJedis(List<ShardInfo> shards) {
13+
super(shards);
14+
}
15+
16+
public String set(String key, String value) {
17+
Jedis j = getShard(key);
18+
return j.set(key, value);
19+
}
20+
21+
public String get(String key) {
22+
Jedis j = getShard(key);
23+
return j.get(key);
24+
}
25+
26+
public int exists(String key) {
27+
Jedis j = getShard(key);
28+
return j.exists(key);
29+
}
30+
31+
public String type(String key) {
32+
Jedis j = getShard(key);
33+
return j.type(key);
34+
}
35+
36+
public int expire(String key, int seconds) {
37+
Jedis j = getShard(key);
38+
return j.expire(key, seconds);
39+
}
40+
41+
public int expireAt(String key, long unixTime) {
42+
Jedis j = getShard(key);
43+
return j.expireAt(key, unixTime);
44+
}
45+
46+
public int ttl(String key) {
47+
Jedis j = getShard(key);
48+
return j.ttl(key);
49+
}
50+
51+
public String getSet(String key, String value) {
52+
Jedis j = getShard(key);
53+
return j.getSet(key, value);
54+
}
55+
56+
public int setnx(String key, String value) {
57+
Jedis j = getShard(key);
58+
return j.setnx(key, value);
59+
}
60+
61+
public String setex(String key, int seconds, String value) {
62+
Jedis j = getShard(key);
63+
return j.setex(key, seconds, value);
64+
}
65+
66+
public int decrBy(String key, int integer) {
67+
Jedis j = getShard(key);
68+
return j.decrBy(key, integer);
69+
}
70+
71+
public int decr(String key) {
72+
Jedis j = getShard(key);
73+
return j.decr(key);
74+
}
75+
76+
public int incrBy(String key, int integer) {
77+
Jedis j = getShard(key);
78+
return j.incrBy(key, integer);
79+
}
80+
81+
public int incr(String key) {
82+
Jedis j = getShard(key);
83+
return j.incr(key);
84+
}
85+
86+
public int append(String key, String value) {
87+
Jedis j = getShard(key);
88+
return j.append(key, value);
89+
}
90+
91+
public String substr(String key, int start, int end) {
92+
Jedis j = getShard(key);
93+
return j.substr(key, start, end);
94+
}
95+
96+
public int hset(String key, String field, String value) {
97+
Jedis j = getShard(key);
98+
return j.hset(key, field, value);
99+
}
100+
101+
public String hget(String key, String field) {
102+
Jedis j = getShard(key);
103+
return j.hget(key, field);
104+
}
105+
106+
public int hsetnx(String key, String field, String value) {
107+
Jedis j = getShard(key);
108+
return j.hsetnx(key, field, value);
109+
}
110+
111+
public String hmset(String key, Map<String, String> hash) {
112+
Jedis j = getShard(key);
113+
return j.hmset(key, hash);
114+
}
115+
116+
public List<String> hmget(String key, String... fields) {
117+
Jedis j = getShard(key);
118+
return j.hmget(key, fields);
119+
}
120+
121+
public int hincrBy(String key, String field, int value) {
122+
Jedis j = getShard(key);
123+
return j.hincrBy(key, field, value);
124+
}
125+
126+
public int hexists(String key, String field) {
127+
Jedis j = getShard(key);
128+
return j.hexists(key, field);
129+
}
130+
131+
public int hdel(String key, String field) {
132+
Jedis j = getShard(key);
133+
return j.hdel(key, field);
134+
}
135+
136+
public int hlen(String key) {
137+
Jedis j = getShard(key);
138+
return j.hlen(key);
139+
}
140+
141+
public List<String> hkeys(String key) {
142+
Jedis j = getShard(key);
143+
return j.hkeys(key);
144+
}
145+
146+
public List<String> hvals(String key) {
147+
Jedis j = getShard(key);
148+
return j.hvals(key);
149+
}
150+
151+
public Map<String, String> hgetAll(String key) {
152+
Jedis j = getShard(key);
153+
return j.hgetAll(key);
154+
}
155+
156+
public int rpush(String key, String string) {
157+
Jedis j = getShard(key);
158+
return j.rpush(key, string);
159+
}
160+
161+
public int lpush(String key, String string) {
162+
Jedis j = getShard(key);
163+
return j.lpush(key, string);
164+
}
165+
166+
public int llen(String key) {
167+
Jedis j = getShard(key);
168+
return j.llen(key);
169+
}
170+
171+
public List<String> lrange(String key, int start, int end) {
172+
Jedis j = getShard(key);
173+
return j.lrange(key, start, end);
174+
}
175+
176+
public String ltrim(String key, int start, int end) {
177+
Jedis j = getShard(key);
178+
return j.ltrim(key, start, end);
179+
}
180+
181+
public String lindex(String key, int index) {
182+
Jedis j = getShard(key);
183+
return j.lindex(key, index);
184+
}
185+
186+
public String lset(String key, int index, String value) {
187+
Jedis j = getShard(key);
188+
return j.lset(key, index, value);
189+
}
190+
191+
public int lrem(String key, int count, String value) {
192+
Jedis j = getShard(key);
193+
return j.lrem(key, count, value);
194+
}
195+
196+
public String lpop(String key) {
197+
Jedis j = getShard(key);
198+
return j.lpop(key);
199+
}
200+
201+
public String rpop(String key) {
202+
Jedis j = getShard(key);
203+
return j.rpop(key);
204+
}
205+
206+
public int sadd(String key, String member) {
207+
Jedis j = getShard(key);
208+
return j.sadd(key, member);
209+
}
210+
211+
public Set<String> smembers(String key) {
212+
Jedis j = getShard(key);
213+
return j.smembers(key);
214+
}
215+
216+
public int srem(String key, String member) {
217+
Jedis j = getShard(key);
218+
return j.srem(key, member);
219+
}
220+
221+
public String spop(String key) {
222+
Jedis j = getShard(key);
223+
return j.spop(key);
224+
}
225+
226+
public int scard(String key) {
227+
Jedis j = getShard(key);
228+
return j.scard(key);
229+
}
230+
231+
public int sismember(String key, String member) {
232+
Jedis j = getShard(key);
233+
return j.sismember(key, member);
234+
}
235+
236+
public String srandmember(String key) {
237+
Jedis j = getShard(key);
238+
return j.srandmember(key);
239+
}
240+
241+
public int zadd(String key, double score, String member) {
242+
Jedis j = getShard(key);
243+
return j.zadd(key, score, member);
244+
}
245+
246+
public Set<String> zrange(String key, int start, int end) {
247+
Jedis j = getShard(key);
248+
return j.zrange(key, start, end);
249+
}
250+
251+
public int zrem(String key, String member) {
252+
Jedis j = getShard(key);
253+
return j.zrem(key, member);
254+
}
255+
256+
public double zincrby(String key, double score, String member) {
257+
Jedis j = getShard(key);
258+
return j.zincrby(key, score, member);
259+
}
260+
261+
public int zrank(String key, String member) {
262+
Jedis j = getShard(key);
263+
return j.zrank(key, member);
264+
}
265+
266+
public int zrevrank(String key, String member) {
267+
Jedis j = getShard(key);
268+
return j.zrevrank(key, member);
269+
}
270+
271+
public Set<String> zrevrange(String key, int start, int end) {
272+
Jedis j = getShard(key);
273+
return j.zrevrange(key, start, end);
274+
}
275+
276+
public Set<Tuple> zrangeWithScores(String key, int start, int end) {
277+
Jedis j = getShard(key);
278+
return j.zrangeWithScores(key, start, end);
279+
}
280+
281+
public Set<Tuple> zrevrangeWithScores(String key, int start, int end) {
282+
Jedis j = getShard(key);
283+
return j.zrevrangeWithScores(key, start, end);
284+
}
285+
286+
public int zcard(String key) {
287+
Jedis j = getShard(key);
288+
return j.zcard(key);
289+
}
290+
291+
public double zscore(String key, String member) {
292+
Jedis j = getShard(key);
293+
return j.zscore(key, member);
294+
}
295+
296+
public List<String> sort(String key) {
297+
Jedis j = getShard(key);
298+
return j.sort(key);
299+
}
300+
301+
public List<String> sort(String key, SortingParams sortingParameters) {
302+
Jedis j = getShard(key);
303+
return j.sort(key, sortingParameters);
304+
}
305+
306+
public int zcount(String key, double min, double max) {
307+
Jedis j = getShard(key);
308+
return j.zcount(key, min, max);
309+
}
310+
311+
public Set<String> zrangeByScore(String key, double min, double max) {
312+
Jedis j = getShard(key);
313+
return j.zrangeByScore(key, min, max);
314+
}
315+
316+
public Set<String> zrangeByScore(String key, double min, double max,
317+
int offset, int count) {
318+
Jedis j = getShard(key);
319+
return j.zrangeByScore(key, min, max, offset, count);
320+
}
321+
322+
public Set<Tuple> zrangeByScoreWithScores(String key, double min, double max) {
323+
Jedis j = getShard(key);
324+
return j.zrangeByScoreWithScores(key, min, max);
325+
}
326+
327+
public Set<Tuple> zrangeByScoreWithScores(String key, double min,
328+
double max, int offset, int count) {
329+
Jedis j = getShard(key);
330+
return j.zrangeByScoreWithScores(key, min, max, offset, count);
331+
}
332+
333+
public int zremrangeByRank(String key, int start, int end) {
334+
Jedis j = getShard(key);
335+
return j.zremrangeByRank(key, start, end);
336+
}
337+
338+
public int zremrangeByScore(String key, double start, double end) {
339+
Jedis j = getShard(key);
340+
return j.zremrangeByScore(key, start, end);
341+
}
342+
343+
public void disconnect() throws IOException {
344+
for (Jedis jedis : getAllShards()) {
345+
jedis.disconnect();
346+
}
347+
}
348+
349+
protected Jedis create(ShardInfo shard) {
350+
Jedis c = new Jedis(shard.getHost(), shard.getPort());
351+
if (shard.getPassword() != null) {
352+
c.auth(shard.getPassword());
353+
}
354+
return c;
355+
}
356+
}

0 commit comments

Comments
 (0)