1 /*
2  * Hunt - A redis client library for D programming language.
3  *
4  * Copyright (C) 2018-2019 HuntLabs
5  *
6  * Website: https://www.huntlabs.net/
7  *
8  * Licensed under the Apache-2.0 License.
9  *
10  */
11 
12 module hunt.redis.commands.BinaryRedisClusterCommands;
13 
14 import hunt.redis.Protocol;
15 
16 import hunt.redis.GeoCoordinate;
17 import hunt.redis.GeoRadiusResponse;
18 import hunt.redis.GeoUnit;
19 import hunt.redis.ListPosition;
20 import hunt.redis.ScanParams;
21 import hunt.redis.ScanResult;
22 import hunt.redis.SortingParams;
23 import hunt.redis.Tuple;
24 import hunt.redis.params.GeoRadiusParam;
25 import hunt.redis.params.SetParams;
26 import hunt.redis.params.ZAddParams;
27 import hunt.redis.params.ZIncrByParams;
28 
29 import hunt.collection.Collection;
30 import hunt.collection.List;
31 import hunt.collection.Map;
32 import hunt.collection.Set;
33 
34 import hunt.Double;
35 import hunt.Long;
36 
37 interface BinaryRedisClusterCommands {
38     string set(const(ubyte)[] key, const(ubyte)[] value);
39 
40     string set(const(ubyte)[] key, const(ubyte)[] value, SetParams params);
41 
42     const(ubyte)[] get(const(ubyte)[] key);
43 
44     bool exists(const(ubyte)[] key);
45 
46     Long persist(const(ubyte)[] key);
47 
48     string type(const(ubyte)[] key);
49 
50     const(ubyte)[] dump(const(ubyte)[] key);
51 
52     // string restore(const(ubyte)[] key, int ttl, const(ubyte)[] serializedValue);
53 
54     // Long expire(const(ubyte)[] key, int seconds);
55 
56     //   Long pexpire(const(ubyte)[] key, long milliseconds);
57 
58     //   Long expireAt(const(ubyte)[] key, long unixTime);
59 
60     //   Long pexpireAt(const(ubyte)[] key, long millisecondsTimestamp);
61 
62     //   Long ttl(const(ubyte)[] key);
63 
64     //   Long pttl(const(ubyte)[] key);
65 
66     //   Long touch(const(ubyte)[] key);
67 
68     //   bool setbit(const(ubyte)[] key, long offset, bool value);
69 
70     //   bool setbit(const(ubyte)[] key, long offset, const(ubyte)[] value);
71 
72     //   bool getbit(const(ubyte)[] key, long offset);
73 
74     //   Long setrange(const(ubyte)[] key, long offset, const(ubyte)[] value);
75 
76     //   const(ubyte)[] getrange(const(ubyte)[] key, long startOffset, long endOffset);
77 
78     //   const(ubyte)[] getSet(const(ubyte)[] key, const(ubyte)[] value);
79 
80     //   Long setnx(const(ubyte)[] key, const(ubyte)[] value);
81 
82     //   string setex(const(ubyte)[] key, int seconds, const(ubyte)[] value);
83 
84     //   string psetex(const(ubyte)[] key, long milliseconds, const(ubyte)[] value);
85 
86     //   Long decrBy(const(ubyte)[] key, long decrement);
87 
88     //   Long decr(const(ubyte)[] key);
89 
90     //   Long incrBy(const(ubyte)[] key, long increment);
91 
92     //   Double incrByFloat(const(ubyte)[] key, double increment);
93 
94     //   Long incr(const(ubyte)[] key);
95 
96     //   Long append(const(ubyte)[] key, const(ubyte)[] value);
97 
98     //   const(ubyte)[] substr(const(ubyte)[] key, int start, int end);
99 
100     //   Long hset(const(ubyte)[] key, const(ubyte)[] field, const(ubyte)[] value);
101 
102     //   Long hset(const(ubyte)[] key, Map!(const(ubyte)[], const(ubyte)[]) hash);
103 
104     //   const(ubyte)[] hget(const(ubyte)[] key, const(ubyte)[] field);
105 
106     //   Long hsetnx(const(ubyte)[] key, const(ubyte)[] field, const(ubyte)[] value);
107 
108     //   string hmset(const(ubyte)[] key, Map!(const(ubyte)[], const(ubyte)[]) hash);
109 
110     //   List!(const(ubyte)[]) hmget(const(ubyte)[] key, const(ubyte)[][] fields...);
111 
112     //   Long hincrBy(const(ubyte)[] key, const(ubyte)[] field, long value);
113 
114     //   Double hincrByFloat(const(ubyte)[] key, const(ubyte)[] field, double value);
115 
116     //   bool hexists(const(ubyte)[] key, const(ubyte)[] field);
117 
118     //   Long hdel(const(ubyte)[] key, const(ubyte)[][] field...);
119 
120     //   Long hlen(const(ubyte)[] key);
121 
122     //   Set!(const(ubyte)[]) hkeys(const(ubyte)[] key);
123 
124     //   Collection!(const(ubyte)[]) hvals(const(ubyte)[] key);
125 
126     //   Map!(const(ubyte)[], const(ubyte)[]) hgetAll(const(ubyte)[] key);
127 
128     //   Long rpush(const(ubyte)[] key, const(ubyte)[][] args...);
129 
130     //   Long lpush(const(ubyte)[] key, const(ubyte)[][] args...);
131 
132     //   Long llen(const(ubyte)[] key);
133 
134     //   List!(const(ubyte)[]) lrange(const(ubyte)[] key, long start, long stop);
135 
136     //   string ltrim(const(ubyte)[] key, long start, long stop);
137 
138     //   const(ubyte)[] lindex(const(ubyte)[] key, long index);
139 
140     //   string lset(const(ubyte)[] key, long index, const(ubyte)[] value);
141 
142     //   Long lrem(const(ubyte)[] key, long count, const(ubyte)[] value);
143 
144     //   const(ubyte)[] lpop(const(ubyte)[] key);
145 
146     //   const(ubyte)[] rpop(const(ubyte)[] key);
147 
148     //   Long sadd(const(ubyte)[] key, const(ubyte)[][] member...);
149 
150     //   Set!(const(ubyte)[]) smembers(const(ubyte)[] key);
151 
152     //   Long srem(const(ubyte)[] key, const(ubyte)[][] member...);
153 
154     //   const(ubyte)[] spop(const(ubyte)[] key);
155 
156     //   Set!(const(ubyte)[]) spop(const(ubyte)[] key, long count);
157 
158     //   Long scard(const(ubyte)[] key);
159 
160     //   bool sismember(const(ubyte)[] key, const(ubyte)[] member);
161 
162     //   const(ubyte)[] srandmember(const(ubyte)[] key);
163 
164     //   List!(const(ubyte)[]) srandmember(const(ubyte)[] key, int count);
165 
166     //   Long strlen(const(ubyte)[] key);
167 
168     //   Long zadd(const(ubyte)[] key, double score, const(ubyte)[] member);
169 
170     //   Long zadd(const(ubyte)[] key, double score, const(ubyte)[] member, ZAddParams params);
171 
172     //   Long zadd(const(ubyte)[] key, Map!(const(ubyte)[], Double) scoreMembers);
173 
174     //   Long zadd(const(ubyte)[] key, Map!(const(ubyte)[], Double) scoreMembers, ZAddParams params);
175 
176     //   Set!(const(ubyte)[]) zrange(const(ubyte)[] key, long start, long stop);
177 
178     //   Long zrem(const(ubyte)[] key, const(ubyte)[][] members...);
179 
180     //   Double zincrby(const(ubyte)[] key, double increment, const(ubyte)[] member);
181 
182     //   Double zincrby(const(ubyte)[] key, double increment, const(ubyte)[] member, ZIncrByParams params);
183 
184     //   Long zrank(const(ubyte)[] key, const(ubyte)[] member);
185 
186     //   Long zrevrank(const(ubyte)[] key, const(ubyte)[] member);
187 
188     //   Set!(const(ubyte)[]) zrevrange(const(ubyte)[] key, long start, long stop);
189 
190     //   Set!(Tuple) zrangeWithScores(const(ubyte)[] key, long start, long stop);
191 
192     //   Set!(Tuple) zrevrangeWithScores(const(ubyte)[] key, long start, long stop);
193 
194     //   Long zcard(const(ubyte)[] key);
195 
196     //   Double zscore(const(ubyte)[] key, const(ubyte)[] member);
197 
198     //   List!(const(ubyte)[]) sort(const(ubyte)[] key);
199 
200     //   List!(const(ubyte)[]) sort(const(ubyte)[] key, SortingParams sortingParameters);
201 
202     //   Long zcount(const(ubyte)[] key, double min, double max);
203 
204     //   Long zcount(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
205 
206     //   Set!(const(ubyte)[]) zrangeByScore(const(ubyte)[] key, double min, double max);
207 
208     //   Set!(const(ubyte)[]) zrangeByScore(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
209 
210     //   Set!(const(ubyte)[]) zrevrangeByScore(const(ubyte)[] key, double max, double min);
211 
212     //   Set!(const(ubyte)[]) zrangeByScore(const(ubyte)[] key, double min, double max, int offset, int count);
213 
214     //   Set!(const(ubyte)[]) zrevrangeByScore(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min);
215 
216     //   Set!(const(ubyte)[]) zrangeByScore(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max, int offset, int count);
217 
218     //   Set!(const(ubyte)[]) zrevrangeByScore(const(ubyte)[] key, double max, double min, int offset, int count);
219 
220     //   Set!(Tuple) zrangeByScoreWithScores(const(ubyte)[] key, double min, double max);
221 
222     //   Set!(Tuple) zrevrangeByScoreWithScores(const(ubyte)[] key, double max, double min);
223 
224     //   Set!(Tuple) zrangeByScoreWithScores(const(ubyte)[] key, double min, double max, int offset, int count);
225 
226     //   Set!(const(ubyte)[]) zrevrangeByScore(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min, int offset, int count);
227 
228     //   Set!(Tuple) zrangeByScoreWithScores(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
229 
230     //   Set!(Tuple) zrevrangeByScoreWithScores(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min);
231 
232     //   Set!(Tuple) zrangeByScoreWithScores(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max, int offset, int count);
233 
234     //   Set!(Tuple) zrevrangeByScoreWithScores(const(ubyte)[] key, double max, double min, int offset, int count);
235 
236     //   Set!(Tuple) zrevrangeByScoreWithScores(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min, int offset, int count);
237 
238     //   Long zremrangeByRank(const(ubyte)[] key, long start, long stop);
239 
240     //   Long zremrangeByScore(const(ubyte)[] key, double min, double max);
241 
242     //   Long zremrangeByScore(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
243 
244     //   Long zlexcount(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
245 
246     //   Set!(const(ubyte)[]) zrangeByLex(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
247 
248     //   Set!(const(ubyte)[]) zrangeByLex(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max, int offset,
249     //       int count);
250 
251     //   Set!(const(ubyte)[]) zrevrangeByLex(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min);
252 
253     //   Set!(const(ubyte)[]) zrevrangeByLex(const(ubyte)[] key, const(ubyte)[] max, const(ubyte)[] min, int offset,
254     //       int count);
255 
256     //   Long zremrangeByLex(const(ubyte)[] key, const(ubyte)[] min, const(ubyte)[] max);
257 
258     //   Long linsert(const(ubyte)[] key, ListPosition where, const(ubyte)[] pivot, const(ubyte)[] value);
259 
260     //   Long lpushx(const(ubyte)[] key, const(ubyte)[][] arg...);
261 
262     //   Long rpushx(const(ubyte)[] key, const(ubyte)[][] arg...);
263 
264     Long del(const(ubyte)[] key);
265 
266     Long unlink(const(ubyte)[] key);
267 
268     //   const(ubyte)[] echo(const(ubyte)[] arg);
269 
270     //   Long bitcount(const(ubyte)[] key);
271 
272     //   Long bitcount(const(ubyte)[] key, long start, long end);
273 
274     //   Long pfadd(const(ubyte)[] key, const(ubyte)[][] elements...);
275 
276     //   long pfcount(const(ubyte)[] key);
277 
278     //   // Geo Commands
279 
280     //   Long geoadd(const(ubyte)[] key, double longitude, double latitude, const(ubyte)[] member);
281 
282     //   Long geoadd(const(ubyte)[] key, Map!(const(ubyte)[], GeoCoordinate) memberCoordinateMap);
283 
284     //   Double geodist(const(ubyte)[] key, const(ubyte)[] member1, const(ubyte)[] member2);
285 
286     //   Double geodist(const(ubyte)[] key, const(ubyte)[] member1, const(ubyte)[] member2, GeoUnit unit);
287 
288     //   List!(const(ubyte)[]) geohash(const(ubyte)[] key, const(ubyte)[][] members...);
289 
290     //   List!(GeoCoordinate) geopos(const(ubyte)[] key, const(ubyte)[][] members...);
291 
292     //   List!(GeoRadiusResponse) georadius(const(ubyte)[] key, double longitude, double latitude, double radius,
293     //       GeoUnit unit);
294 
295     //   List!(GeoRadiusResponse) georadiusReadonly(const(ubyte)[] key, double longitude, double latitude, double radius,
296     //       GeoUnit unit);
297 
298     //   List!(GeoRadiusResponse) georadius(const(ubyte)[] key, double longitude, double latitude, double radius,
299     //       GeoUnit unit, GeoRadiusParam param);
300 
301     //   List!(GeoRadiusResponse) georadiusReadonly(const(ubyte)[] key, double longitude, double latitude, double radius,
302     //       GeoUnit unit, GeoRadiusParam param);
303 
304     //   List!(GeoRadiusResponse) georadiusByMember(const(ubyte)[] key, const(ubyte)[] member, double radius, GeoUnit unit);
305 
306     //   List!(GeoRadiusResponse) georadiusByMemberReadonly(const(ubyte)[] key, const(ubyte)[] member, double radius, GeoUnit unit);
307 
308     //   List!(GeoRadiusResponse) georadiusByMember(const(ubyte)[] key, const(ubyte)[] member, double radius, GeoUnit unit,
309     //       GeoRadiusParam param);
310 
311     //   List!(GeoRadiusResponse) georadiusByMemberReadonly(const(ubyte)[] key, const(ubyte)[] member, double radius, GeoUnit unit,
312     //       GeoRadiusParam param);
313 
314     //   ScanResult!(MapEntry!(const(ubyte)[], const(ubyte)[])) hscan(const(ubyte)[] key, const(ubyte)[] cursor);
315 
316     //   ScanResult!(MapEntry!(const(ubyte)[], const(ubyte)[])) hscan(const(ubyte)[] key, const(ubyte)[] cursor, ScanParams params);
317 
318     //   ScanResult!(const(ubyte)[]) sscan(const(ubyte)[] key, const(ubyte)[] cursor);
319 
320     //   ScanResult!(const(ubyte)[]) sscan(const(ubyte)[] key, const(ubyte)[] cursor, ScanParams params);
321 
322     //   ScanResult!(Tuple) zscan(const(ubyte)[] key, const(ubyte)[] cursor);
323 
324     //   ScanResult!(Tuple) zscan(const(ubyte)[] key, const(ubyte)[] cursor, ScanParams params);
325 
326     //   /**
327     //    * Executes BITFIELD Redis command
328     //    * @param key
329     //    * @param arguments
330     //    * @return 
331     //    */
332     //   List!(Long) bitfield(const(ubyte)[] key, const(ubyte)[][] arguments...);
333 
334     //   /**
335     //    * Used for HSTRLEN Redis command
336     //    * @param key 
337     //    * @param field
338     //    * @return 
339     //    */
340     //   Long hstrlen(const(ubyte)[] key, const(ubyte)[] field);
341 
342     //   const(ubyte)[] xadd(const(ubyte)[] key, const(ubyte)[] id, Map!(const(ubyte)[], const(ubyte)[]) hash, long maxLen, bool approximateLength);
343 
344     //   Long xlen(const(ubyte)[] key);
345 
346     //   List!(const(ubyte)[]) xrange(const(ubyte)[] key, const(ubyte)[] start, const(ubyte)[] end, long count);
347 
348     //   List!(const(ubyte)[]) xrevrange(const(ubyte)[] key, const(ubyte)[] end, const(ubyte)[] start, int count);
349 
350     //   Long xack(const(ubyte)[] key, const(ubyte)[] group, const(ubyte)[][] ids...);
351 
352     //   string xgroupCreate(const(ubyte)[] key, const(ubyte)[] consumer, const(ubyte)[] id, bool makeStream);
353 
354     //   string xgroupSetID(const(ubyte)[] key, const(ubyte)[] consumer, const(ubyte)[] id);
355 
356     //   Long xgroupDestroy(const(ubyte)[] key, const(ubyte)[] consumer);
357 
358     //   string xgroupDelConsumer(const(ubyte)[] key, const(ubyte)[] consumer, const(ubyte)[] consumerName);
359 
360     //   Long xdel(const(ubyte)[] key, const(ubyte)[][] ids...);
361 
362     //   Long xtrim(const(ubyte)[] key, long maxLen, bool approximateLength);
363 
364     //   List!(const(ubyte)[]) xpending(const(ubyte)[] key, const(ubyte)[] groupname, const(ubyte)[] start, const(ubyte)[] end, int count, const(ubyte)[] consumername);
365 
366     //   List!(const(ubyte)[]) xclaim(const(ubyte)[] key, const(ubyte)[] groupname, const(ubyte)[] consumername, long minIdleTime, long newIdleTime, int retries, bool force, const(ubyte)[][] ids);
367 
368     //   Long waitReplicas(const(ubyte)[] key, int replicas, long timeout);
369 
370     //   Object sendCommand(const(ubyte)[] sampleKey, ProtocolCommand cmd, const(ubyte)[][] args...);
371 }