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 }