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