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.ShardedRedis; 13 14 // import hunt.redis.BinaryRedis; 15 // import hunt.redis.BinaryRedisPubSub; 16 // import hunt.redis.BinaryShardedRedis; 17 // import hunt.redis.BitOP; 18 // import hunt.redis.BitPosParams; 19 // import hunt.redis.Client; 20 // import hunt.redis.ClusterReset; 21 // import hunt.redis.GeoCoordinate; 22 // import hunt.redis.GeoRadiusResponse; 23 // import hunt.redis.GeoUnit; 24 // import hunt.redis.HostAndPort; 25 // import hunt.redis.ListPosition; 26 // import hunt.redis.Module; 27 // import hunt.redis.Pipeline; 28 // import hunt.redis.Protocol; 29 // import hunt.redis.Redis; 30 // import hunt.redis.RedisMonitor; 31 // import hunt.redis.RedisPoolAbstract; 32 // import hunt.redis.RedisPubSub; 33 // import hunt.redis.RedisShardInfo; 34 // import hunt.redis.ScanParams; 35 // import hunt.redis.ScanResult; 36 // import hunt.redis.ShardedRedisPool; 37 // import hunt.redis.SortingParams; 38 // import hunt.redis.StreamEntry; 39 // import hunt.redis.StreamEntryID; 40 // import hunt.redis.StreamPendingEntry; 41 // import hunt.redis.Transaction; 42 // import hunt.redis.Tuple; 43 // import hunt.redis.ZParams; 44 45 // import hunt.redis.commands.RedisCommands; 46 // import hunt.redis.Protocol; 47 // import hunt.redis.params.GeoRadiusParam; 48 // import hunt.redis.params.SetParams; 49 // import hunt.redis.params.ZAddParams; 50 // import hunt.redis.params.ZIncrByParams; 51 // import hunt.redis.util.Hashing; 52 53 // import hunt.util.Common; 54 // import hunt.collection.List; 55 // import hunt.collection.Map; 56 // import hunt.collection.Set; 57 58 // import hunt.Boolean; 59 // import hunt.Double; 60 // import hunt.Long; 61 62 // import std.regex; 63 // alias Pattern = Regex!char; 64 65 // class ShardedRedis : BinaryShardedRedis, RedisCommands, Closeable { 66 67 // protected ShardedRedisPool dataSource = null; 68 69 // this(List!(RedisShardInfo) shards) { 70 // super(shards); 71 // } 72 73 // this(List!(RedisShardInfo) shards, Hashing algo) { 74 // super(shards, algo); 75 // } 76 77 // this(List!(RedisShardInfo) shards, Pattern keyTagPattern) { 78 // super(shards, keyTagPattern); 79 // } 80 81 // this(List!(RedisShardInfo) shards, Hashing algo, Pattern keyTagPattern) { 82 // super(shards, algo, keyTagPattern); 83 // } 84 85 // override 86 // string set(string key, string value) { 87 // Redis j = getShard(key); 88 // return j.set(key, value); 89 // } 90 91 // override 92 // string set(string key, string value, SetParams params) { 93 // Redis j = getShard(key); 94 // return j.set(key, value, params); 95 // } 96 97 // override 98 // string get(string key) { 99 // Redis j = getShard(key); 100 // return j.get(key); 101 // } 102 103 // override 104 // string echo(string string) { 105 // Redis j = getShard(string); 106 // return j.echo(string); 107 // } 108 109 // override 110 // bool exists(string key) { 111 // Redis j = getShard(key); 112 // return j.exists(key); 113 // } 114 115 // override 116 // string type(string key) { 117 // Redis j = getShard(key); 118 // return j.type(key); 119 // } 120 121 // override 122 // const(ubyte)[] dump(string key) { 123 // Redis j = getShard(key); 124 // return j.dump(key); 125 // } 126 127 // override 128 // string restore(string key, int ttl, const(ubyte)[] serializedValue) { 129 // Redis j = getShard(key); 130 // return j.restore(key, ttl, serializedValue); 131 // } 132 133 // override 134 // string restoreReplace(string key, int ttl, const(ubyte)[] serializedValue) { 135 // Redis j = getShard(key); 136 // return j.restoreReplace(key, ttl, serializedValue); 137 // } 138 139 // override 140 // Long expire(string key, int seconds) { 141 // Redis j = getShard(key); 142 // return j.expire(key, seconds); 143 // } 144 145 // override 146 // Long pexpire(string key, long milliseconds) { 147 // Redis j = getShard(key); 148 // return j.pexpire(key, milliseconds); 149 // } 150 151 // override 152 // Long expireAt(string key, long unixTime) { 153 // Redis j = getShard(key); 154 // return j.expireAt(key, unixTime); 155 // } 156 157 // override 158 // Long pexpireAt(string key, long millisecondsTimestamp) { 159 // Redis j = getShard(key); 160 // return j.pexpireAt(key, millisecondsTimestamp); 161 // } 162 163 // override 164 // Long ttl(string key) { 165 // Redis j = getShard(key); 166 // return j.ttl(key); 167 // } 168 169 // override 170 // Long pttl(string key) { 171 // Redis j = getShard(key); 172 // return j.pttl(key); 173 // } 174 175 // override 176 // bool setbit(string key, long offset, bool value) { 177 // Redis j = getShard(key); 178 // return j.setbit(key, offset, value); 179 // } 180 181 // override 182 // bool setbit(string key, long offset, string value) { 183 // Redis j = getShard(key); 184 // return j.setbit(key, offset, value); 185 // } 186 187 // override 188 // bool getbit(string key, long offset) { 189 // Redis j = getShard(key); 190 // return j.getbit(key, offset); 191 // } 192 193 // // override 194 // // long setrange(string key, long offset, string value) { 195 // // Redis j = getShard(key); 196 // // return j.setrange(key, offset, value); 197 // // } 198 199 // // override 200 // // string getrange(string key, long startOffset, long endOffset) { 201 // // Redis j = getShard(key); 202 // // return j.getrange(key, startOffset, endOffset); 203 // // } 204 205 // // override 206 // // string getSet(string key, string value) { 207 // // Redis j = getShard(key); 208 // // return j.getSet(key, value); 209 // // } 210 211 // // override 212 // // long setnx(string key, string value) { 213 // // Redis j = getShard(key); 214 // // return j.setnx(key, value); 215 // // } 216 217 // // override 218 // // string setex(string key, int seconds, string value) { 219 // // Redis j = getShard(key); 220 // // return j.setex(key, seconds, value); 221 // // } 222 223 // // override 224 // // string psetex(string key, long milliseconds, string value) { 225 // // Redis j = getShard(key); 226 // // return j.psetex(key, milliseconds, value); 227 // // } 228 229 // // List!(string) blpop(string arg) { 230 // // Redis j = getShard(arg); 231 // // return j.blpop(arg); 232 // // } 233 234 // // override 235 // // List!(string) blpop(int timeout, string key) { 236 // // Redis j = getShard(key); 237 // // return j.blpop(timeout, key); 238 // // } 239 240 // // List!(string) brpop(string arg) { 241 // // Redis j = getShard(arg); 242 // // return j.brpop(arg); 243 // // } 244 245 // // override 246 // // List!(string) brpop(int timeout, string key) { 247 // // Redis j = getShard(key); 248 // // return j.brpop(timeout, key); 249 // // } 250 251 // // override 252 // // long decrBy(string key, long decrement) { 253 // // Redis j = getShard(key); 254 // // return j.decrBy(key, decrement); 255 // // } 256 257 // // override 258 // // long decr(string key) { 259 // // Redis j = getShard(key); 260 // // return j.decr(key); 261 // // } 262 263 // // override 264 // // long incrBy(string key, long increment) { 265 // // Redis j = getShard(key); 266 // // return j.incrBy(key, increment); 267 // // } 268 269 // // override 270 // // Double incrByFloat(string key, double increment) { 271 // // Redis j = getShard(key); 272 // // return j.incrByFloat(key, increment); 273 // // } 274 275 // // override 276 // // long incr(string key) { 277 // // Redis j = getShard(key); 278 // // return j.incr(key); 279 // // } 280 281 // // override 282 // // long append(string key, string value) { 283 // // Redis j = getShard(key); 284 // // return j.append(key, value); 285 // // } 286 287 // // override 288 // // string substr(string key, int start, int end) { 289 // // Redis j = getShard(key); 290 // // return j.substr(key, start, end); 291 // // } 292 293 // // override 294 // // long hset(string key, string field, string value) { 295 // // Redis j = getShard(key); 296 // // return j.hset(key, field, value); 297 // // } 298 299 // // override 300 // // long hset(string key, Map!(string, string) hash) { 301 // // Redis j = getShard(key); 302 // // return j.hset(key, hash); 303 // // } 304 305 // // override 306 // // string hget(string key, string field) { 307 // // Redis j = getShard(key); 308 // // return j.hget(key, field); 309 // // } 310 311 // // override 312 // // long hsetnx(string key, string field, string value) { 313 // // Redis j = getShard(key); 314 // // return j.hsetnx(key, field, value); 315 // // } 316 317 // // override 318 // // string hmset(string key, Map!(string, string) hash) { 319 // // Redis j = getShard(key); 320 // // return j.hmset(key, hash); 321 // // } 322 323 // // override 324 // // List!(string) hmget(string key, string[] fields...) { 325 // // Redis j = getShard(key); 326 // // return j.hmget(key, fields); 327 // // } 328 329 // // override 330 // // long hincrBy(string key, string field, long value) { 331 // // Redis j = getShard(key); 332 // // return j.hincrBy(key, field, value); 333 // // } 334 335 // // override 336 // // Double hincrByFloat(string key, string field, double value) { 337 // // Redis j = getShard(key); 338 // // return j.hincrByFloat(key, field, value); 339 // // } 340 341 // // override 342 // // bool hexists(string key, string field) { 343 // // Redis j = getShard(key); 344 // // return j.hexists(key, field); 345 // // } 346 347 // override 348 // Long del(string key) { 349 // Redis j = getShard(key); 350 // return j.del(key); 351 // } 352 353 // override 354 // Long unlink(string key) { 355 // Redis j = getShard(key); 356 // return j.unlink(key); 357 // } 358 359 // // override 360 // // long hdel(string key, string[] fields...) { 361 // // Redis j = getShard(key); 362 // // return j.hdel(key, fields); 363 // // } 364 365 // // override 366 // // long hlen(string key) { 367 // // Redis j = getShard(key); 368 // // return j.hlen(key); 369 // // } 370 371 // // override 372 // // Set!(string) hkeys(string key) { 373 // // Redis j = getShard(key); 374 // // return j.hkeys(key); 375 // // } 376 377 // // override 378 // // List!(string) hvals(string key) { 379 // // Redis j = getShard(key); 380 // // return j.hvals(key); 381 // // } 382 383 // // override 384 // // Map!(string, string) hgetAll(string key) { 385 // // Redis j = getShard(key); 386 // // return j.hgetAll(key); 387 // // } 388 389 // // override 390 // // long rpush(string key, string[] strings...) { 391 // // Redis j = getShard(key); 392 // // return j.rpush(key, strings); 393 // // } 394 395 // // override 396 // // long lpush(string key, string[] strings...) { 397 // // Redis j = getShard(key); 398 // // return j.lpush(key, strings); 399 // // } 400 401 // // override 402 // // long lpushx(string key, string[] string...) { 403 // // Redis j = getShard(key); 404 // // return j.lpushx(key, string); 405 // // } 406 407 // override 408 // Long strlen(string key) { 409 // Redis j = getShard(key); 410 // return j.strlen(key); 411 // } 412 413 // override 414 // Long move(string key, int dbIndex) { 415 // Redis j = getShard(key); 416 // return j.move(key, dbIndex); 417 // } 418 419 // // override 420 // // long rpushx(string key, string[] string...) { 421 // // Redis j = getShard(key); 422 // // return j.rpushx(key, string); 423 // // } 424 425 // override 426 // Long persist(string key) { 427 // Redis j = getShard(key); 428 // return j.persist(key); 429 // } 430 431 // // override 432 // // long llen(string key) { 433 // // Redis j = getShard(key); 434 // // return j.llen(key); 435 // // } 436 437 // // override 438 // // List!(string) lrange(string key, long start, long stop) { 439 // // Redis j = getShard(key); 440 // // return j.lrange(key, start, stop); 441 // // } 442 443 // // override 444 // // string ltrim(string key, long start, long stop) { 445 // // Redis j = getShard(key); 446 // // return j.ltrim(key, start, stop); 447 // // } 448 449 // // override 450 // // string lindex(string key, long index) { 451 // // Redis j = getShard(key); 452 // // return j.lindex(key, index); 453 // // } 454 455 // // override 456 // // string lset(string key, long index, string value) { 457 // // Redis j = getShard(key); 458 // // return j.lset(key, index, value); 459 // // } 460 461 // // override 462 // // long lrem(string key, long count, string value) { 463 // // Redis j = getShard(key); 464 // // return j.lrem(key, count, value); 465 // // } 466 467 // // override 468 // // string lpop(string key) { 469 // // Redis j = getShard(key); 470 // // return j.lpop(key); 471 // // } 472 473 // // override 474 // // string rpop(string key) { 475 // // Redis j = getShard(key); 476 // // return j.rpop(key); 477 // // } 478 479 // // override 480 // // long sadd(string key, string[] members...) { 481 // // Redis j = getShard(key); 482 // // return j.sadd(key, members); 483 // // } 484 485 // // override 486 // // Set!(string) smembers(string key) { 487 // // Redis j = getShard(key); 488 // // return j.smembers(key); 489 // // } 490 491 // // override 492 // // long srem(string key, string[] members...) { 493 // // Redis j = getShard(key); 494 // // return j.srem(key, members); 495 // // } 496 497 // // override 498 // // string spop(string key) { 499 // // Redis j = getShard(key); 500 // // return j.spop(key); 501 // // } 502 503 // // override 504 // // Set!(string) spop(string key, long count) { 505 // // Redis j = getShard(key); 506 // // return j.spop(key, count); 507 // // } 508 509 // // override 510 // // long scard(string key) { 511 // // Redis j = getShard(key); 512 // // return j.scard(key); 513 // // } 514 515 // // override 516 // // bool sismember(string key, string member) { 517 // // Redis j = getShard(key); 518 // // return j.sismember(key, member); 519 // // } 520 521 // // override 522 // // string srandmember(string key) { 523 // // Redis j = getShard(key); 524 // // return j.srandmember(key); 525 // // } 526 527 // // override 528 // // List!(string) srandmember(string key, int count) { 529 // // Redis j = getShard(key); 530 // // return j.srandmember(key, count); 531 // // } 532 533 // // override 534 // // long zadd(string key, double score, string member) { 535 // // Redis j = getShard(key); 536 // // return j.zadd(key, score, member); 537 // // } 538 539 // // override 540 // // long zadd(string key, double score, string member, ZAddParams params) { 541 // // Redis j = getShard(key); 542 // // return j.zadd(key, score, member, params); 543 // // } 544 545 // // override 546 // // long zadd(string key, Map!(string, Double) scoreMembers) { 547 // // Redis j = getShard(key); 548 // // return j.zadd(key, scoreMembers); 549 // // } 550 551 // // override 552 // // long zadd(string key, Map!(string, Double) scoreMembers, ZAddParams params) { 553 // // Redis j = getShard(key); 554 // // return j.zadd(key, scoreMembers, params); 555 // // } 556 557 // // override 558 // // Set!(string) zrange(string key, long start, long stop) { 559 // // Redis j = getShard(key); 560 // // return j.zrange(key, start, stop); 561 // // } 562 563 // // override 564 // // long zrem(string key, string[] members...) { 565 // // Redis j = getShard(key); 566 // // return j.zrem(key, members); 567 // // } 568 569 // // override 570 // // Double zincrby(string key, double increment, string member) { 571 // // Redis j = getShard(key); 572 // // return j.zincrby(key, increment, member); 573 // // } 574 575 // // override 576 // // Double zincrby(string key, double increment, string member, ZIncrByParams params) { 577 // // Redis j = getShard(key); 578 // // return j.zincrby(key, increment, member, params); 579 // // } 580 581 // // override 582 // // long zrank(string key, string member) { 583 // // Redis j = getShard(key); 584 // // return j.zrank(key, member); 585 // // } 586 587 // // override 588 // // long zrevrank(string key, string member) { 589 // // Redis j = getShard(key); 590 // // return j.zrevrank(key, member); 591 // // } 592 593 // // override 594 // // Set!(string) zrevrange(string key, long start, long stop) { 595 // // Redis j = getShard(key); 596 // // return j.zrevrange(key, start, stop); 597 // // } 598 599 // // override 600 // // Set!(Tuple) zrangeWithScores(string key, long start, long stop) { 601 // // Redis j = getShard(key); 602 // // return j.zrangeWithScores(key, start, stop); 603 // // } 604 605 // // override 606 // // Set!(Tuple) zrevrangeWithScores(string key, long start, long stop) { 607 // // Redis j = getShard(key); 608 // // return j.zrevrangeWithScores(key, start, stop); 609 // // } 610 611 // // override 612 // // long zcard(string key) { 613 // // Redis j = getShard(key); 614 // // return j.zcard(key); 615 // // } 616 617 // // override 618 // // Double zscore(string key, string member) { 619 // // Redis j = getShard(key); 620 // // return j.zscore(key, member); 621 // // } 622 623 // // override 624 // // List!(string) sort(string key) { 625 // // Redis j = getShard(key); 626 // // return j.sort(key); 627 // // } 628 629 // // override 630 // // List!(string) sort(string key, SortingParams sortingParameters) { 631 // // Redis j = getShard(key); 632 // // return j.sort(key, sortingParameters); 633 // // } 634 635 // // override 636 // // long zcount(string key, double min, double max) { 637 // // Redis j = getShard(key); 638 // // return j.zcount(key, min, max); 639 // // } 640 641 // // override 642 // // long zcount(string key, string min, string max) { 643 // // Redis j = getShard(key); 644 // // return j.zcount(key, min, max); 645 // // } 646 647 // // override 648 // // Set!(string) zrangeByScore(string key, double min, double max) { 649 // // Redis j = getShard(key); 650 // // return j.zrangeByScore(key, min, max); 651 // // } 652 653 // // override 654 // // Set!(string) zrevrangeByScore(string key, double max, double min) { 655 // // Redis j = getShard(key); 656 // // return j.zrevrangeByScore(key, max, min); 657 // // } 658 659 // // override 660 // // Set!(string) zrangeByScore(string key, double min, double max, int offset, int count) { 661 // // Redis j = getShard(key); 662 // // return j.zrangeByScore(key, min, max, offset, count); 663 // // } 664 665 // // override 666 // // Set!(string) zrevrangeByScore(string key, double max, double min, int offset, int count) { 667 // // Redis j = getShard(key); 668 // // return j.zrevrangeByScore(key, max, min, offset, count); 669 // // } 670 671 // // override 672 // // Set!(Tuple) zrangeByScoreWithScores(string key, double min, double max) { 673 // // Redis j = getShard(key); 674 // // return j.zrangeByScoreWithScores(key, min, max); 675 // // } 676 677 // // override 678 // // Set!(Tuple) zrevrangeByScoreWithScores(string key, double max, double min) { 679 // // Redis j = getShard(key); 680 // // return j.zrevrangeByScoreWithScores(key, max, min); 681 // // } 682 683 // // override 684 // // Set!(Tuple) zrangeByScoreWithScores(string key, double min, double max, int offset, 685 // // int count) { 686 // // Redis j = getShard(key); 687 // // return j.zrangeByScoreWithScores(key, min, max, offset, count); 688 // // } 689 690 // // override 691 // // Set!(Tuple) zrevrangeByScoreWithScores(string key, double max, double min, int offset, 692 // // int count) { 693 // // Redis j = getShard(key); 694 // // return j.zrevrangeByScoreWithScores(key, max, min, offset, count); 695 // // } 696 697 // // override 698 // // Set!(string) zrangeByScore(string key, string min, string max) { 699 // // Redis j = getShard(key); 700 // // return j.zrangeByScore(key, min, max); 701 // // } 702 703 // // override 704 // // Set!(string) zrevrangeByScore(string key, string max, string min) { 705 // // Redis j = getShard(key); 706 // // return j.zrevrangeByScore(key, max, min); 707 // // } 708 709 // // override 710 // // Set!(string) zrangeByScore(string key, string min, string max, int offset, int count) { 711 // // Redis j = getShard(key); 712 // // return j.zrangeByScore(key, min, max, offset, count); 713 // // } 714 715 // // override 716 // // Set!(string) zrevrangeByScore(string key, string max, string min, int offset, int count) { 717 // // Redis j = getShard(key); 718 // // return j.zrevrangeByScore(key, max, min, offset, count); 719 // // } 720 721 // // override 722 // // Set!(Tuple) zrangeByScoreWithScores(string key, string min, string max) { 723 // // Redis j = getShard(key); 724 // // return j.zrangeByScoreWithScores(key, min, max); 725 // // } 726 727 // // override 728 // // Set!(Tuple) zrevrangeByScoreWithScores(string key, string max, string min) { 729 // // Redis j = getShard(key); 730 // // return j.zrevrangeByScoreWithScores(key, max, min); 731 // // } 732 733 // // override 734 // // Set!(Tuple) zrangeByScoreWithScores(string key, string min, string max, int offset, 735 // // int count) { 736 // // Redis j = getShard(key); 737 // // return j.zrangeByScoreWithScores(key, min, max, offset, count); 738 // // } 739 740 // // override 741 // // Set!(Tuple) zrevrangeByScoreWithScores(string key, string max, string min, int offset, 742 // // int count) { 743 // // Redis j = getShard(key); 744 // // return j.zrevrangeByScoreWithScores(key, max, min, offset, count); 745 // // } 746 747 // // override 748 // // long zremrangeByRank(string key, long start, long stop) { 749 // // Redis j = getShard(key); 750 // // return j.zremrangeByRank(key, start, stop); 751 // // } 752 753 // // override 754 // // long zremrangeByScore(string key, double min, double max) { 755 // // Redis j = getShard(key); 756 // // return j.zremrangeByScore(key, min, max); 757 // // } 758 759 // // override 760 // // long zremrangeByScore(string key, string min, string max) { 761 // // Redis j = getShard(key); 762 // // return j.zremrangeByScore(key, min, max); 763 // // } 764 765 // // override 766 // // long zlexcount(string key, string min, string max) { 767 // // return getShard(key).zlexcount(key, min, max); 768 // // } 769 770 // // override 771 // // Set!(string) zrangeByLex(string key, string min, string max) { 772 // // return getShard(key).zrangeByLex(key, min, max); 773 // // } 774 775 // // override 776 // // Set!(string) zrangeByLex(string key, string min, string max, 777 // // int offset, int count) { 778 // // return getShard(key).zrangeByLex(key, min, max, offset, count); 779 // // } 780 781 // // override 782 // // Set!(string) zrevrangeByLex(string key, string max, string min) { 783 // // return getShard(key).zrevrangeByLex(key, max, min); 784 // // } 785 786 // // override 787 // // Set!(string) zrevrangeByLex(string key, string max, string min, int offset, int count) { 788 // // return getShard(key).zrevrangeByLex(key, max, min, offset, count); 789 // // } 790 791 // // override 792 // // long zremrangeByLex(string key, string min, string max) { 793 // // return getShard(key).zremrangeByLex(key, min, max); 794 // // } 795 796 // // override 797 // // long linsert(string key, ListPosition where, string pivot, string value) { 798 // // Redis j = getShard(key); 799 // // return j.linsert(key, where, pivot, value); 800 // // } 801 802 // override 803 // Long bitcount(string key) { 804 // Redis j = getShard(key); 805 // return j.bitcount(key); 806 // } 807 808 // override 809 // Long bitcount(string key, long start, long end) { 810 // Redis j = getShard(key); 811 // return j.bitcount(key, start, end); 812 // } 813 814 // // override 815 // // long bitpos(string key, bool value) { 816 // // Redis j = getShard(key); 817 // // return j.bitpos(key, value); 818 // // } 819 820 // // override 821 // // long bitpos(string key, bool value, BitPosParams params) { 822 // // Redis j = getShard(key); 823 // // return j.bitpos(key, value, params); 824 // // } 825 826 // // override 827 // // ScanResult!(MapEntry!(string, string)) hscan(string key, string cursor) { 828 // // Redis j = getShard(key); 829 // // return j.hscan(key, cursor); 830 // // } 831 832 // // override 833 // // ScanResult!(MapEntry!(string, string)) hscan(string key, string cursor, ScanParams params) { 834 // // Redis j = getShard(key); 835 // // return j.hscan(key, cursor, params); 836 // // } 837 838 // // override 839 // // ScanResult!(string) sscan(string key, string cursor) { 840 // // Redis j = getShard(key); 841 // // return j.sscan(key, cursor); 842 // // } 843 844 // // override 845 // // ScanResult!(Tuple) zscan(string key, string cursor) { 846 // // Redis j = getShard(key); 847 // // return j.zscan(key, cursor); 848 // // } 849 850 // // override 851 // // ScanResult!(Tuple) zscan(string key, string cursor, ScanParams params) { 852 // // Redis j = getShard(key); 853 // // return j.zscan(key, cursor, params); 854 // // } 855 856 // // override 857 // // ScanResult!(string) sscan(string key, string cursor, ScanParams params) { 858 // // Redis j = getShard(key); 859 // // return j.sscan(key, cursor, params); 860 // // } 861 862 // override 863 // void close() { 864 // if (dataSource !is null) { 865 // bool broken = false; 866 867 // foreach(Redis jedis ; getAllShards()) { 868 // if (jedis.getClient().isBroken()) { 869 // broken = true; 870 // break; 871 // } 872 // } 873 // ShardedRedisPool pool = this.dataSource; 874 // this.dataSource = null; 875 // if (broken) { 876 // pool.returnBrokenResource(this); 877 // } else { 878 // pool.returnResource(this); 879 // } 880 881 // } else { 882 // disconnect(); 883 // } 884 // } 885 886 // void setDataSource(ShardedRedisPool shardedRedisPool) { 887 // this.dataSource = shardedRedisPool; 888 // } 889 890 // void resetState() { 891 // foreach(Redis jedis ; getAllShards()) { 892 // jedis.resetState(); 893 // } 894 // } 895 896 // override 897 // Long pfadd(string key, string[] elements...) { 898 // Redis j = getShard(key); 899 // return j.pfadd(key, elements); 900 // } 901 902 // override 903 // Long pfcount(string key) { 904 // Redis j = getShard(key); 905 // return j.pfcount(key); 906 // } 907 908 // override 909 // Long touch(string key) { 910 // Redis j = getShard(key); 911 // return j.touch(key); 912 // } 913 914 // // override 915 // // long geoadd(string key, double longitude, double latitude, string member) { 916 // // Redis j = getShard(key); 917 // // return j.geoadd(key, longitude, latitude, member); 918 // // } 919 920 // // override 921 // // long geoadd(string key, Map!(string, GeoCoordinate) memberCoordinateMap) { 922 // // Redis j = getShard(key); 923 // // return j.geoadd(key, memberCoordinateMap); 924 // // } 925 926 // // override 927 // // Double geodist(string key, string member1, string member2) { 928 // // Redis j = getShard(key); 929 // // return j.geodist(key, member1, member2); 930 // // } 931 932 // // override 933 // // Double geodist(string key, string member1, string member2, GeoUnit unit) { 934 // // Redis j = getShard(key); 935 // // return j.geodist(key, member1, member2, unit); 936 // // } 937 938 // // override 939 // // List!(string) geohash(string key, string[] members...) { 940 // // Redis j = getShard(key); 941 // // return j.geohash(key, members); 942 // // } 943 944 // // override 945 // // List!(GeoCoordinate) geopos(string key, string[] members...) { 946 // // Redis j = getShard(key); 947 // // return j.geopos(key, members); 948 // // } 949 950 // // override 951 // // List!(GeoRadiusResponse) georadius(string key, double longitude, double latitude, 952 // // double radius, GeoUnit unit) { 953 // // Redis j = getShard(key); 954 // // return j.georadius(key, longitude, latitude, radius, unit); 955 // // } 956 957 // // override 958 // // List!(GeoRadiusResponse) georadiusReadonly(string key, double longitude, double latitude, 959 // // double radius, GeoUnit unit) { 960 // // Redis j = getShard(key); 961 // // return j.georadiusReadonly(key, longitude, latitude, radius, unit); 962 // // } 963 964 // // override 965 // // List!(GeoRadiusResponse) georadius(string key, double longitude, double latitude, 966 // // double radius, GeoUnit unit, GeoRadiusParam param) { 967 // // Redis j = getShard(key); 968 // // return j.georadius(key, longitude, latitude, radius, unit, param); 969 // // } 970 971 // // override 972 // // List!(GeoRadiusResponse) georadiusReadonly(string key, double longitude, double latitude, 973 // // double radius, GeoUnit unit, GeoRadiusParam param) { 974 // // Redis j = getShard(key); 975 // // return j.georadiusReadonly(key, longitude, latitude, radius, unit, param); 976 // // } 977 978 // // override 979 // // List!(GeoRadiusResponse) georadiusByMember(string key, string member, double radius, 980 // // GeoUnit unit) { 981 // // Redis j = getShard(key); 982 // // return j.georadiusByMember(key, member, radius, unit); 983 // // } 984 985 // // override 986 // // List!(GeoRadiusResponse) georadiusByMemberReadonly(string key, string member, double radius, 987 // // GeoUnit unit) { 988 // // Redis j = getShard(key); 989 // // return j.georadiusByMemberReadonly(key, member, radius, unit); 990 // // } 991 992 // // override 993 // // List!(GeoRadiusResponse) georadiusByMember(string key, string member, double radius, 994 // // GeoUnit unit, GeoRadiusParam param) { 995 // // Redis j = getShard(key); 996 // // return j.georadiusByMember(key, member, radius, unit, param); 997 // // } 998 999 // // override 1000 // // List!(GeoRadiusResponse) georadiusByMemberReadonly(string key, string member, double radius, 1001 // // GeoUnit unit, GeoRadiusParam param) { 1002 // // Redis j = getShard(key); 1003 // // return j.georadiusByMemberReadonly(key, member, radius, unit, param); 1004 // // } 1005 1006 // // override 1007 // // List!(long) bitfield(string key, string[] arguments...) { 1008 // // Redis j = getShard(key); 1009 // // return j.bitfield(key, arguments); 1010 // // } 1011 1012 // // override 1013 // // long hstrlen(string key, string field) { 1014 // // Redis j = getShard(key); 1015 // // return j.hstrlen(key, field); 1016 // // } 1017 1018 // // override 1019 // // StreamEntryID xadd(string key, StreamEntryID id, Map!(string, string) hash) { 1020 // // Redis j = getShard(key); 1021 // // return j.xadd(key, id, hash); 1022 // // } 1023 1024 // // override 1025 // // StreamEntryID xadd(string key, StreamEntryID id, Map!(string, string) hash, long maxLen, bool approximateLength) { 1026 // // Redis j = getShard(key); 1027 // // return j.xadd(key, id, hash, maxLen, approximateLength); 1028 // // } 1029 1030 // // override 1031 // // long xlen(string key) { 1032 // // Redis j = getShard(key); 1033 // // return j.xlen(key); 1034 // // } 1035 1036 // // override 1037 // // List!(StreamEntry) xrange(string key, StreamEntryID start, StreamEntryID end, int count) { 1038 // // Redis j = getShard(key); 1039 // // return j.xrange(key, start, end, count); 1040 // // } 1041 1042 // // override 1043 // // long xack(string key, string group, StreamEntryID[] ids...) { 1044 // // Redis j = getShard(key); 1045 // // return j.xack(key, group, ids); 1046 // // } 1047 1048 // // override 1049 // // string xgroupCreate(string key, string consumer, StreamEntryID id, bool makeStream) { 1050 // // Redis j = getShard(key); 1051 // // return j.xgroupCreate(key, consumer, id, makeStream); 1052 // // } 1053 1054 // // override 1055 // // string xgroupSetID(string key, string groupname, StreamEntryID id) { 1056 // // Redis j = getShard(key); 1057 // // return j.xgroupSetID(key, groupname, id); 1058 // // } 1059 1060 // // override 1061 // // long xgroupDestroy(string key, string groupname) { 1062 // // Redis j = getShard(key); 1063 // // return j.xgroupDestroy(key, groupname); 1064 // // } 1065 1066 // // override 1067 // // string xgroupDelConsumer(string key, string groupname, string consumername) { 1068 // // Redis j = getShard(key); 1069 // // return j.xgroupDelConsumer(key, groupname, consumername); 1070 // // } 1071 1072 1073 // // override 1074 // // long xdel(string key, StreamEntryID[] ids...) { 1075 // // Redis j = getShard(key); 1076 // // return j.xdel(key, ids); 1077 // // } 1078 1079 // // override 1080 // // long xtrim(string key, long maxLen, bool approximateLength) { 1081 // // Redis j = getShard(key); 1082 // // return j.xtrim(key, maxLen, approximateLength); 1083 // // } 1084 1085 // // override 1086 // // List!(StreamEntry) xrevrange(string key, StreamEntryID end, StreamEntryID start, int count) { 1087 // // Redis j = getShard(key); 1088 // // return j.xrevrange(key, end, start, count); 1089 // // } 1090 1091 // // override 1092 // // List!(StreamPendingEntry) xpending(string key, string groupname, StreamEntryID start, StreamEntryID end, 1093 // // int count, string consumername) { 1094 // // Redis j = getShard(key); 1095 // // return j.xpending(key, groupname, start, end, count, consumername); 1096 // // } 1097 1098 // // override 1099 // // List!(StreamEntry) xclaim(string key, string group, string consumername, long minIdleTime, long newIdleTime, 1100 // // int retries, bool force, StreamEntryID[] ids...) { 1101 // // Redis j = getShard(key); 1102 // // return j.xclaim(key, group, consumername, minIdleTime, newIdleTime, retries, force, ids); 1103 // // } 1104 1105 // // override 1106 // // Object sendCommand(ProtocolCommand cmd, string[] args...) { 1107 // // // default since no sample key provided in RedisCommands interface 1108 // // string sampleKey = args.length > 0 ? args[0] : cmd.to!string(); 1109 // // Redis j = getShard(sampleKey); 1110 // // return j.sendCommand(cmd, args); 1111 // // } 1112 // }