33 enum class CheckShards { kNo, kSame };
35 virtual ~Transaction() =
default;
46 virtual RequestAppend Append(std::string key, std::string value) = 0;
48 virtual RequestBitop Bitop(
BitOperation op, std::string dest, std::vector<std::string> srcs) = 0;
50 virtual RequestDbsize Dbsize(size_t shard) = 0;
52 virtual RequestDecr Decr(std::string key) = 0;
54 virtual RequestDel Del(std::string key) = 0;
56 virtual RequestDel Del(std::vector<std::string> keys) = 0;
58 virtual RequestUnlink Unlink(std::string key) = 0;
60 virtual RequestUnlink Unlink(std::vector<std::string> keys) = 0;
62 virtual RequestExists Exists(std::string key) = 0;
64 virtual RequestExists Exists(std::vector<std::string> keys) = 0;
66 virtual RequestExpire Expire(std::string key, std::chrono::seconds ttl) = 0;
68 virtual RequestExpire Expire(std::string key, std::chrono::seconds ttl,
ExpireOptions options) = 0;
70 virtual RequestGeoadd Geoadd(std::string key,
GeoaddArg point_member) = 0;
72 virtual RequestGeoadd Geoadd(std::string key, std::vector<
GeoaddArg> point_members) = 0;
74 virtual RequestGeopos Geopos(std::string key, std::vector<std::string> members) = 0;
76 virtual RequestGeoradius Georadius(
84 virtual RequestGeosearch Geosearch(
91 virtual RequestGeosearch Geosearch(
99 virtual RequestGeosearch Geosearch(
107 virtual RequestGeosearch Geosearch(
116 virtual RequestGet Get(std::string key) = 0;
118 virtual RequestGetdel Getdel(std::string key) = 0;
120 virtual RequestGetset Getset(std::string key, std::string value) = 0;
122 virtual RequestHdel Hdel(std::string key, std::string field) = 0;
124 virtual RequestHdel Hdel(std::string key, std::vector<std::string> fields) = 0;
126 virtual RequestHexists Hexists(std::string key, std::string field) = 0;
128 virtual RequestHget Hget(std::string key, std::string field) = 0;
130 virtual RequestHgetall Hgetall(std::string key) = 0;
132 virtual RequestHincrby Hincrby(std::string key, std::string field, int64_t increment) = 0;
134 virtual RequestHincrbyfloat Hincrbyfloat(std::string key, std::string field,
double increment) = 0;
136 virtual RequestHkeys Hkeys(std::string key) = 0;
138 virtual RequestHlen Hlen(std::string key) = 0;
140 virtual RequestHmget Hmget(std::string key, std::vector<std::string> fields) = 0;
142 virtual RequestHmset Hmset(std::string key, std::vector<std::pair<std::string, std::string>> field_values) = 0;
144 virtual RequestHset Hset(std::string key, std::string field, std::string value) = 0;
146 virtual RequestHsetnx Hsetnx(std::string key, std::string field, std::string value) = 0;
148 virtual RequestHvals Hvals(std::string key) = 0;
150 virtual RequestIncr Incr(std::string key) = 0;
152 virtual RequestKeys Keys(std::string keys_pattern, size_t shard) = 0;
154 virtual RequestLindex Lindex(std::string key, int64_t index) = 0;
156 virtual RequestLlen Llen(std::string key) = 0;
158 virtual RequestLpop Lpop(std::string key) = 0;
160 virtual RequestLpush Lpush(std::string key, std::string value) = 0;
162 virtual RequestLpush Lpush(std::string key, std::vector<std::string> values) = 0;
164 virtual RequestLpushx Lpushx(std::string key, std::string element) = 0;
166 virtual RequestLrange Lrange(std::string key, int64_t start, int64_t stop) = 0;
168 virtual RequestLrem Lrem(std::string key, int64_t count, std::string element) = 0;
170 virtual RequestLtrim Ltrim(std::string key, int64_t start, int64_t stop) = 0;
172 virtual RequestMget Mget(std::vector<std::string> keys) = 0;
174 virtual RequestMset Mset(std::vector<std::pair<std::string, std::string>> key_values) = 0;
177 virtual RequestMsetex
Msetex(std::vector<std::pair<std::string, std::string>> key_values) = 0;
181 std::vector<std::pair<std::string, std::string>> key_values,
185 virtual RequestPersist Persist(std::string key) = 0;
187 virtual RequestPexpire Pexpire(std::string key, std::chrono::milliseconds ttl) = 0;
189 virtual RequestPing Ping(size_t shard) = 0;
191 virtual RequestPingMessage PingMessage(size_t shard, std::string message) = 0;
193 virtual RequestRename Rename(std::string key, std::string new_key) = 0;
195 virtual RequestRpop Rpop(std::string key) = 0;
197 virtual RequestRpush Rpush(std::string key, std::string value) = 0;
199 virtual RequestRpush Rpush(std::string key, std::vector<std::string> values) = 0;
201 virtual RequestRpushx Rpushx(std::string key, std::string element) = 0;
203 virtual RequestSadd Sadd(std::string key, std::string member) = 0;
205 virtual RequestSadd Sadd(std::string key, std::vector<std::string> members) = 0;
207 virtual RequestScard Scard(std::string key) = 0;
209 virtual RequestSet Set(std::string key, std::string value) = 0;
211 virtual RequestSet Set(std::string key, std::string value, std::chrono::milliseconds ttl) = 0;
213 virtual RequestSetIfExist SetIfExist(std::string key, std::string value) = 0;
215 virtual RequestSetIfExist SetIfExist(std::string key, std::string value, std::chrono::milliseconds ttl) = 0;
217 virtual RequestSetIfNotExist SetIfNotExist(std::string key, std::string value) = 0;
219 virtual RequestSetIfNotExist SetIfNotExist(std::string key, std::string value, std::chrono::milliseconds ttl) = 0;
221 virtual RequestSetIfNotExistOrGet SetIfNotExistOrGet(std::string key, std::string value) = 0;
223 virtual RequestSetIfNotExistOrGet SetIfNotExistOrGet(
226 std::chrono::milliseconds ttl
229 virtual RequestSetex Setex(std::string key, std::chrono::seconds seconds, std::string value) = 0;
231 virtual RequestSetAndGetPrevious SetAndGetPrevious(
234 std::chrono::milliseconds ttl
237 virtual RequestSismember Sismember(std::string key, std::string member) = 0;
239 virtual RequestSmembers Smembers(std::string key) = 0;
241 virtual RequestSrandmember Srandmember(std::string key) = 0;
243 virtual RequestSrandmembers Srandmembers(std::string key, int64_t count) = 0;
245 virtual RequestSrem Srem(std::string key, std::string member) = 0;
247 virtual RequestSrem Srem(std::string key, std::vector<std::string> members) = 0;
249 virtual RequestStrlen Strlen(std::string key) = 0;
251 virtual RequestTime Time(size_t shard) = 0;
253 virtual RequestTtl Ttl(std::string key) = 0;
255 virtual RequestType Type(std::string key) = 0;
257 virtual RequestZadd Zadd(std::string key,
double score, std::string member) = 0;
259 virtual RequestZadd Zadd(std::string key,
double score, std::string member,
const ZaddOptions& options) = 0;
261 virtual RequestZadd Zadd(std::string key, std::vector<std::pair<
double, std::string>> scored_members) = 0;
263 virtual RequestZadd Zadd(
265 std::vector<std::pair<
double, std::string>> scored_members,
269 virtual RequestZaddIncr ZaddIncr(std::string key,
double score, std::string member) = 0;
271 virtual RequestZaddIncrExisting ZaddIncrExisting(std::string key,
double score, std::string member) = 0;
273 virtual RequestZcard Zcard(std::string key) = 0;
275 virtual RequestZcount Zcount(std::string key,
double min,
double max) = 0;
277 virtual RequestZrange Zrange(std::string key, int64_t start, int64_t stop) = 0;
279 virtual RequestZrangeWithScores ZrangeWithScores(std::string key, int64_t start, int64_t stop) = 0;
281 virtual RequestZrangebyscore Zrangebyscore(std::string key,
double min,
double max) = 0;
283 virtual RequestZrangebyscore Zrangebyscore(std::string key, std::string min, std::string max) = 0;
285 virtual RequestZrangebyscore Zrangebyscore(
292 virtual RequestZrangebyscore Zrangebyscore(
299 virtual RequestZrangebyscoreWithScores ZrangebyscoreWithScores(std::string key,
double min,
double max) = 0;
301 virtual RequestZrangebyscoreWithScores ZrangebyscoreWithScores(
307 virtual RequestZrangebyscoreWithScores ZrangebyscoreWithScores(
314 virtual RequestZrangebyscoreWithScores ZrangebyscoreWithScores(
321 virtual RequestZrem Zrem(std::string key, std::string member) = 0;
323 virtual RequestZrem Zrem(std::string key, std::vector<std::string> members) = 0;
325 virtual RequestZremrangebyrank Zremrangebyrank(std::string key, int64_t start, int64_t stop) = 0;
327 virtual RequestZremrangebyscore Zremrangebyscore(std::string key,
double min,
double max) = 0;
329 virtual RequestZremrangebyscore Zremrangebyscore(std::string key, std::string min, std::string max) = 0;
331 virtual RequestZscore Zscore(std::string key, std::string member) = 0;
335 virtual RequestHexpire Hexpire(std::string key, std::chrono::seconds ttl, std::vector<std::string> fields) = 0;
337 virtual RequestHexpire Hexpire(
339 std::chrono::seconds ttl,
341 std::vector<std::string> fields
344 virtual RequestHexpire Hpexpire(
346 std::chrono::milliseconds ttl,
347 std::vector<std::string> fields
350 virtual RequestHexpire Hpexpire(
352 std::chrono::milliseconds ttl,
354 std::vector<std::string> fields
357 virtual RequestHexpire Hexpireat(
359 std::chrono::system_clock::time_point deadline,
360 std::vector<std::string> fields
363 virtual RequestHexpire Hexpireat(
365 std::chrono::system_clock::time_point deadline,
367 std::vector<std::string> fields
370 virtual RequestHexpire Hpexpireat(
372 std::chrono::system_clock::time_point deadline,
373 std::vector<std::string> fields
376 virtual RequestHexpire Hpexpireat(
378 std::chrono::system_clock::time_point deadline,
380 std::vector<std::string> fields
383 virtual RequestHexpiretime Hexpiretime(std::string key, std::vector<std::string> fields) = 0;
385 virtual RequestHpexpiretime Hpexpiretime(std::string key, std::vector<std::string> fields) = 0;
387 virtual RequestHttl Httl(std::string key, std::vector<std::string> fields) = 0;
389 virtual RequestHpttl Hpttl(std::string key, std::vector<std::string> fields) = 0;
391 virtual RequestHpersist Hpersist(std::string key, std::vector<std::string> fields) = 0;
393 virtual RequestHgetex Hgetex(std::string key, std::vector<std::string> fields) = 0;
395 virtual RequestHgetex Hgetex(std::string key,
HgetexOptions options, std::vector<std::string> fields) = 0;
397 virtual RequestHsetex Hsetex(std::string key, std::vector<
HsetexFieldValue> field_values) = 0;
399 virtual RequestHsetex Hsetex(
407 virtual RequestJsonSet JsonSet(std::string key, std::string path, formats::
json::
Value value) = 0;
409 virtual RequestJsonSetIfNotExist JsonSetIfNotExist(
415 virtual RequestJsonSetIfExist JsonSetIfExist(std::string key, std::string path, formats::
json::
Value value) = 0;
417 virtual RequestJsonGet JsonGet(std::string key) = 0;
419 virtual RequestJsonGet JsonGet(std::string key, std::string path) = 0;
421 virtual RequestJsonGet JsonGet(std::string key, std::vector<std::string> paths) = 0;
423 virtual RequestJsonMget JsonMget(std::vector<std::string> keys, std::string path) = 0;
425 virtual RequestJsonMset JsonMset(std::vector<JsonKeyPathValue> key_path_values) = 0;