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.MultiKeyBinaryCommands;
13
14
15 import hunt.redis.BinaryRedisPubSub;
16 import hunt.redis.BitOP;
17 import hunt.redis.SortingParams;
18 import hunt.redis.ZParams;
19
20 import hunt.collection.List;
21 import hunt.collection.Map;
22 import hunt.collection.Set;
23
24
25 interface MultiKeyBinaryCommands {
26 long del(const(ubyte)[][] keys...);
27
28 long unlink(const(ubyte)[][] keys...);
29
30 long exists(const(ubyte)[][] keys...);
31
32 List!(const(ubyte)[]) blpop(int timeout, const(ubyte)[][] keys...);
33
34 List!(const(ubyte)[]) brpop(int timeout, const(ubyte)[][] keys...);
35
36 List!(const(ubyte)[]) blpop(const(ubyte)[][] args...);
37
38 List!(const(ubyte)[]) brpop(const(ubyte)[][] args...);
39
40 Set!(const(ubyte)[]) keys(const(ubyte)[] pattern);
41
42 List!(const(ubyte)[]) mget(const(ubyte)[][] keys...);
43
44 string mset(const(ubyte)[][] keysvalues...);
45
46 long msetnx(const(ubyte)[][] keysvalues...);
47
48 string rename(const(ubyte)[] oldkey, const(ubyte)[] newkey);
49
50 long renamenx(const(ubyte)[] oldkey, const(ubyte)[] newkey);
51
52 const(ubyte)[] rpoplpush(const(ubyte)[] srckey, const(ubyte)[] dstkey);
53
54 Set!(const(ubyte)[]) sdiff(const(ubyte)[][] keys...);
55
56 long sdiffstore(const(ubyte)[] dstkey, const(ubyte)[][] keys...);
57
58 Set!(const(ubyte)[]) sinter(const(ubyte)[][] keys...);
59
60 long sinterstore(const(ubyte)[] dstkey, const(ubyte)[][] keys...);
61
62 long smove(const(ubyte)[] srckey, const(ubyte)[] dstkey, const(ubyte)[] member);
63
64 long sort(const(ubyte)[] key, SortingParams sortingParameters, const(ubyte)[] dstkey);
65
66 long sort(const(ubyte)[] key, const(ubyte)[] dstkey);
67
68 Set!(const(ubyte)[]) sunion(const(ubyte)[][] keys...);
69
70 long sunionstore(const(ubyte)[] dstkey, const(ubyte)[][] keys...);
71
72 string watch(const(ubyte)[][] keys...);
73
74 string unwatch();
75
76 long zinterstore(const(ubyte)[] dstkey, const(ubyte)[][] sets...);
77
78 long zinterstore(const(ubyte)[] dstkey, ZParams params, const(ubyte)[][] sets...);
79
80 long zunionstore(const(ubyte)[] dstkey, const(ubyte)[][] sets...);
81
82 long zunionstore(const(ubyte)[] dstkey, ZParams params, const(ubyte)[][] sets...);
83
84 const(ubyte)[] brpoplpush(const(ubyte)[] source, const(ubyte)[] destination, int timeout);
85
86 long publish(const(ubyte)[] channel, const(ubyte)[] message);
87
88 void subscribe(BinaryRedisPubSub jedisPubSub, const(ubyte)[][] channels...);
89
90 void psubscribe(BinaryRedisPubSub jedisPubSub, const(ubyte)[][] patterns...);
91
92 const(ubyte)[] randomBinaryKey();
93
94 long bitop(BitOP op, const(ubyte)[] destKey, const(ubyte)[][] srcKeys...);
95
96 string pfmerge(const(ubyte)[] destkey, const(ubyte)[][] sourcekeys...);
97
98 long pfcount(const(ubyte)[][] keys...);
99
100 long touch(const(ubyte)[][] keys...);
101
102 List!(const(ubyte)[]) xread(int count, long block, Map!(const(ubyte)[], const(ubyte)[]) streams);
103
104 List!(const(ubyte)[]) xreadGroup(const(ubyte)[] groupname, const(ubyte)[] consumer, int count, long block, bool noAck, Map!(const(ubyte)[], const(ubyte)[]) streams);
105 }