diff --git a/examples/console_net8/Program.cs b/examples/console_net8/Program.cs index a7e7a6f..e9cb079 100644 --- a/examples/console_net8/Program.cs +++ b/examples/console_net8/Program.cs @@ -4,7 +4,9 @@ using System.Diagnostics; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading; +using System.Threading.Tasks; namespace console_net8 { @@ -47,8 +49,7 @@ class Program static void Main(string[] args) { - - Console.WriteLine(typeof(GeoUnit).FromObject(null)); + Console.WriteLine(typeof(GeoUnit).FromObject(null)); Console.WriteLine(typeof(GeoUnit).FromObject("")); Console.WriteLine(typeof(GeoUnit).FromObject("ft")); Console.WriteLine(Array.CreateInstance(typeof(GeoMember[]).GetElementType(), 0)); diff --git a/src/FreeRedis/IRedisClient.cs b/src/FreeRedis/IRedisClient.cs index 1d48974..5322807 100644 --- a/src/FreeRedis/IRedisClient.cs +++ b/src/FreeRedis/IRedisClient.cs @@ -6,741 +6,717 @@ namespace FreeRedis { - public interface IRedisClient - { - List> Interceptors { get; } + public interface IRedisClient + { + List> Interceptors { get; } - event EventHandler Connected; - event EventHandler Notice; - event EventHandler Unavailable; + event EventHandler Connected; + event EventHandler Notice; + event EventHandler Unavailable; - long Append(string key, T value); - long BitCount(string key, long start, long end); - long BitOp(BitOpOperation operation, string destkey, params string[] keys); - long BitPos(string key, bool bit, long? start = null, long? end = null); - long Decr(string key); - long DecrBy(string key, long decrement); - string Get(string key); - T Get(string key); - void Get(string key, Stream destination, int bufferSize = 1024); - bool GetBit(string key, long offset); - string GetRange(string key, long start, long end); - T GetRange(string key, long start, long end); - string GetSet(string key, T value); - long Incr(string key); - long IncrBy(string key, long increment); - decimal IncrByFloat(string key, decimal increment); - string[] MGet(params string[] keys); - T[] MGet(params string[] keys); - void MSet(string key, object value, params object[] keyValues); - void MSet(Dictionary keyValues); - bool MSetNx(string key, object value, params object[] keyValues); - bool MSetNx(Dictionary keyValues); - void PSetEx(string key, long milliseconds, T value); - void Set(string key, T value, int timeoutSeconds = 0); - void Set(string key, T value, TimeSpan timeout); - void Set(string key, T value, bool keepTtl); - bool SetNx(string key, T value, int timeoutSeconds); - bool SetNx(string key, T value, TimeSpan timeout); - bool SetXx(string key, T value, int timeoutSeconds = 0); - bool SetXx(string key, T value, TimeSpan timeout); - bool SetXx(string key, T value, bool keepTtl); - string Set(string key, T value, TimeSpan timeout, bool keepTtl, bool nx, bool xx, bool get); - long SetBit(string key, long offset, bool value); - void SetEx(string key, int seconds, T value); - bool SetNx(string key, T value); - long SetRange(string key, long offset, T value); - long StrLen(string key); - long XAck(string key, string group, params string[] id); - string XAdd(string key, string field, T value, params object[] fieldValues); - string XAdd(string key, long maxlen, string id, string field, T value, params object[] fieldValues); - string XAdd(string key, Dictionary fieldValues); - string XAdd(string key, long maxlen, string id, Dictionary fieldValues); - StreamsXAutoClaimResult XAutoClaim(string key, string group, string consumer, long minIdleTime, string start, long count = 0); - StreamsEntry[] XClaim(string key, string group, string consumer, long minIdleTime, params string[] id); - StreamsEntry[] XClaim(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); - string[] XClaimJustId(string key, string group, string consumer, long minIdleTime, params string[] id); - string[] XClaimJustId(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); - long XDel(string key, params string[] id); - void XGroupCreate(string key, string group, string id = "$", bool MkStream = false); - void XGroupSetId(string key, string group, string id = "$"); - bool XGroupDestroy(string key, string group); - void XGroupCreateConsumer(string key, string group, string consumer); - long XGroupDelConsumer(string key, string group, string consumer); - StreamsXInfoStreamResult XInfoStream(string key); - StreamsXInfoStreamFullResult XInfoStreamFull(string key, long count = 10); - StreamsXInfoGroupsResult[] XInfoGroups(string key); - StreamsXInfoConsumersResult[] XInfoConsumers(string key, string group); - long XLen(string key); - StreamsXPendingResult XPending(string key, string group); - StreamsXPendingConsumerResult[] XPending(string key, string group, string start, string end, long count, string consumer = null); - StreamsEntry[] XRange(string key, string start, string end, long count = -1); - StreamsEntry[] XRevRange(string key, string end, string start, long count = -1); - StreamsEntry XRead(long block, string key, string id); - StreamsEntryResult[] XRead(long count, long block, string key, string id, params string[] keyIds); - StreamsEntryResult[] XRead(long count, long block, Dictionary keyIds); - StreamsEntry XReadGroup(string group, string consumer, long block, string key, string id); - StreamsEntryResult[] XReadGroup(string group, string consumer, long count, long block, bool noack, string key, string id, params string[] keyIds); - StreamsEntryResult[] XReadGroup(string group, string consumer, long count, long block, bool noack, Dictionary keyIds); - long XTrim(string key, long count); - ZMember BZPopMin(string key, int timeoutSeconds); - KeyValue BZPopMin(string[] keys, int timeoutSeconds); - ZMember BZPopMax(string key, int timeoutSeconds); - KeyValue BZPopMax(string[] keys, int timeoutSeconds); - long ZAdd(string key, decimal score, string member, params object[] scoreMembers); - long ZAdd(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - long ZAddNx(string key, decimal score, string member, params object[] scoreMembers); - long ZAddNx(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - long ZAddXx(string key, decimal score, string member, params object[] scoreMembers); - long ZAddXx(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - long ZCard(string key); - long ZCount(string key, decimal min, decimal max); - long ZCount(string key, string min, string max); - decimal ZIncrBy(string key, decimal increment, string member); - long ZInterStore(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); - long ZLexCount(string key, string min, string max); - ZMember ZPopMin(string key); - ZMember[] ZPopMin(string key, int count); - ZMember ZPopMax(string key); - ZMember[] ZPopMax(string key, int count); - string[] ZRange(string key, decimal start, decimal stop); - ZMember[] ZRangeWithScores(string key, decimal start, decimal stop); - string[] ZRangeByLex(string key, string min, string max, int offset = 0, int count = 0); - string[] ZRangeByScore(string key, decimal min, decimal max, int offset = 0, int count = 0); - string[] ZRangeByScore(string key, string min, string max, int offset = 0, int count = 0); - ZMember[] ZRangeByScoreWithScores(string key, decimal min, decimal max, int offset = 0, int count = 0); - ZMember[] ZRangeByScoreWithScores(string key, string min, string max, int offset = 0, int count = 0); - long? ZRank(string key, string member); - long ZRem(string key, params string[] members); - long ZRemRangeByLex(string key, string min, string max); - long ZRemRangeByRank(string key, long start, long stop); - long ZRemRangeByScore(string key, decimal min, decimal max); - long ZRemRangeByScore(string key, string min, string max); - string[] ZRevRange(string key, decimal start, decimal stop); - ZMember[] ZRevRangeWithScores(string key, decimal start, decimal stop); - string[] ZRevRangeByLex(string key, decimal max, decimal min, int offset = 0, int count = 0); - string[] ZRevRangeByLex(string key, string max, string min, int offset = 0, int count = 0); - string[] ZRevRangeByScore(string key, decimal max, decimal min, int offset = 0, int count = 0); - string[] ZRevRangeByScore(string key, string max, string min, int offset = 0, int count = 0); - ZMember[] ZRevRangeByScoreWithScores(string key, decimal max, decimal min, int offset = 0, int count = 0); - ZMember[] ZRevRangeByScoreWithScores(string key, string max, string min, int offset = 0, int count = 0); - long ZRevRank(string key, string member); - decimal? ZScore(string key, string member); - long ZUnionStore(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); - string[] ZRandMember(string key, int count, bool repetition); - ZMember[] ZRandMemberWithScores(string key, int count, bool repetition); - ScanResult ZScan(string key, long cursor, string pattern, long count = 0); - IEnumerable ZScan(string key, string pattern, long count); - long SAdd(string key, params object[] members); - long SCard(string key); - string[] SDiff(params string[] keys); - T[] SDiff(params string[] keys); - long SDiffStore(string destination, params string[] keys); - string[] SInter(params string[] keys); - T[] SInter(params string[] keys); - long SInterStore(string destination, params string[] keys); - bool SIsMember(string key, T member); - string[] SMembers(string key); - T[] SMembers(string key); - bool[] SMIsMember(string key, params object[] members); - bool SMove(string source, string destination, T member); - string SPop(string key); - T SPop(string key); - string[] SPop(string key, int count); - T[] SPop(string key, int count); - string SRandMember(string key); - T SRandMember(string key); - string[] SRandMember(string key, int count); - T[] SRandMember(string key, int count); - long SRem(string key, params object[] members); - ScanResult SScan(string key, long cursor, string pattern, long count); - IEnumerable SScan(string key, string pattern, long count); - string[] SUnion(params string[] keys); - T[] SUnion(params string[] keys); - long SUnionStore(string destination, params string[] keys); - string JsonGet(string key, string indent = null, string newline = null, string space = null, params string[] paths); - string[] JsonMGet(string[] keys, string path = "$"); - void JsonSet(string key, string value, string path = "$", bool nx = false, bool xx = false); - void JsonMSet(string[] keys, string[] values, string[] paths); - void JsonMerge(string key, string path, string value); - long JsonDel(string key, string path = "$"); - long[] JsonArrInsert(string key, string path, long index = 0, params object[] values); - long[] JsonArrAppend(string key, string path, params object[] values); - long[] JsonArrIndex(string key, string path, T value) where T : struct; - long[] JsonArrLen(string key, string path); - object[] JsonArrPop(string key, string path, int index = -1); - long[] JsonArrTrim(string key, string path, int start, int stop); - long JsonClear(string key, string path = "$"); - long[] JsonDebugMemory(string key, string path = "$"); - long JsonForget(string key, string path = "$"); - string JsonNumIncrBy(string key, string path, Double value); - string JsonNumMultBy(string key, string path, Double value); - string[][] JsonObjKeys(string key, string path = "$"); - long[] JsonObjLen(string key, string path = "$"); - object[][] JsonResp(string key, string path = "$"); - long[] JsonStrAppend(string key, string value, string path = "$"); - long[] JsonStrLen(string key, string path = "$"); - bool[] JsonToggle(string key, string path = "$"); - string[] JsonType(string key, string path = "$"); - SubscribeListObject SubscribeList(string listKey, Action onMessage); - SubscribeListObject SubscribeList(string[] listKeys, Action onMessage); - SubscribeListBroadcastObject SubscribeListBroadcast(string listKey, string clientId, Action onMessage); - SubscribeStreamObject SubscribeStream(string streamKey, Action> onMessage); - long Publish(string channel, string message); - long Publish(string channel, byte[] message); - string[] PubSubChannels(string pattern = "*"); - long PubSubNumSub(string channel); - long[] PubSubNumSub(string[] channels); - long PubSubNumPat(); - void PUnSubscribe(params string[] pattern); - void UnSubscribe(params string[] channels); - IDisposable PSubscribe(string pattern, Action handler); - IDisposable PSubscribe(string[] pattern, Action handler); - IDisposable Subscribe(string[] channels, Action handler); - IDisposable Subscribe(string channel, Action handler); - - ///// - ///// redis 7.0 shard pub/sub - ///// - //long SPublish(string shardchannel, string message); - //string[] PubSubShardChannels(string pattern = "*"); - //long PubSubShardNumSub(string channel); - //long[] PubSubShardNumSub(string[] channels); - ///// - ///// redis 7.0 shard pub/sub - ///// - //IDisposable SSubscribe(string[] shardchannels, Action handler); - ///// - ///// redis 7.0 shard pub/sub - ///// - //IDisposable SSubscribe(string shardchannel, Action handler); - ///// - ///// redis 7.0 shard pub/sub - ///// - //void SUnSubscribe(params string[] shardchannels); - - bool ScriptExists(string sha1); - bool[] ScriptExists(string[] sha1); - void ScriptFlush(); - void ScriptKill(); - string ScriptLoad(string script); - string[] AclCat(string categoryname = null); - long AclDelUser(params string[] username); - string AclGenPass(int bits = 0); - AclGetUserResult AclGetUser(string username = "default"); - string[] AclList(); - void AclLoad(); - LogResult[] AclLog(long count = 0); - void AclSave(); - void AclSetUser(string username, params string[] rule); - string[] AclUsers(); - string AclWhoami(); - string BgRewriteAof(); - string BgSave(string schedule = null); - object[] Command(); - long CommandCount(); - string[] CommandGetKeys(params string[] command); - object[] CommandInfo(params string[] command); - Dictionary ConfigGet(string parameter); - void ConfigResetStat(); - void ConfigRewrite(); - void ConfigSet(string parameter, T value); - long DbSize(); - string DebugObject(string key); - void FlushAll(bool isasync = false); - void FlushDb(bool isasync = false); - string Info(string section = null); - DateTime LastSave(); - string LatencyDoctor(); - string MemoryDoctor(); - string MemoryMallocStats(); - void MemoryPurge(); - Dictionary MemoryStats(); - long MemoryUsage(string key, long count = 0); - void ReplicaOf(string host, int port); - RoleResult Role(); - void Save(); - void SlaveOf(string host, int port); - void SwapDb(int index1, int index2); - DateTime Time(); - void LSet(string key, long index, T element); - void LTrim(string key, long start, long stop); - string RPop(string key); - T RPop(string key); - string RPopLPush(string source, string destination); - T RPopLPush(string source, string destination); - long RPush(string key, params object[] elements); - long RPushX(string key, params object[] elements); - string BfReserve(string key, decimal errorRate, long capacity, int expansion = 2, bool nonScaling = false); - bool BfAdd(string key, string item); - bool[] BfMAdd(string key, string[] items); - string BfInsert(string key, string[] items, long? capacity = null, string error = null, int expansion = 2, bool noCreate = false, bool nonScaling = false); - bool BfExists(string key, string item); - bool[] BfMExists(string key, string[] items); - ScanResult BfScanDump(string key, long iter); - string BfLoadChunk(string key, long iter, Byte[] data); - Dictionary BfInfo(string key); - RedisClient.LockController Lock(string name, int timeoutSeconds, bool autoDelay = true); - string CmsInitByDim(string key, long width, long depth); - string CmsInitByProb(string key, decimal error, decimal probability); - long CmsIncrBy(string key, string item, long increment); - long[] CmsIncrBy(string key, Dictionary itemIncrements); - long[] CmsQuery(string key, string[] items); - string CmsMerge(string dest, long numKeys, string[] src, long[] weights); - Dictionary CmsInfo(string key); - string CfReserve(string key, long capacity, long? bucketSize = null, long? maxIterations = null, int? expansion = null); - bool CfAdd(string key, string item); - bool CfAddNx(string key, string item); - string CfInsert(string key, string[] items, long? capacity = null, bool noCreate = false); - string CfInsertNx(string key, string[] items, long? capacity = null, bool noCreate = false); - bool CfExists(string key, string item); - bool CfDel(string key, string item); - long CfCount(string key, string item); - ScanResult CfScanDump(string key, long iter); - string CfLoadChunk(string key, long iter, Byte[] data); - Dictionary CfInfo(string key); - string TopkReserve(string key, long topk, long width, long depth, decimal decay); - string[] TopkAdd(string key, string[] items); - string TopkIncrBy(string key, string item, long increment); - string[] TopkIncrBy(string key, Dictionary itemIncrements); - bool[] TopkQuery(string key, string[] items); - long[] TopkCount(string key, string[] items); - string[] TopkList(string key); - Dictionary TopkInfo(string key); - bool Move(string key, int db); - long? ObjectRefCount(string key); - long ObjectIdleTime(string key); - string ObjectEncoding(string key); - long? ObjectFreq(string key); - bool Persist(string key); - bool PExpire(string key, int milliseconds); - bool PExpireAt(string key, DateTime timestamp); - long PTtl(string key); - string RandomKey(); - void Rename(string key, string newkey); - bool RenameNx(string key, string newkey); - void Restore(string key, Byte[] serializedValue); - void Restore(string key, int ttl, Byte[] serializedValue, bool replace = false, bool absTtl = false, int? idleTimeSeconds = null, decimal? frequency = null); - ScanResult Scan(long cursor, string pattern, long count, string type); - IEnumerable Scan(string pattern, long count, string type); - string[] Sort(string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); - long SortStore(string storeDestination, string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); - long Touch(params string[] keys); - long Ttl(string key); - KeyType Type(string key); - long UnLink(params string[] keys); - long Wait(long numreplicas, long timeoutMilliseconds); - string BLPop(string key, int timeoutSeconds); - T BLPop(string key, int timeoutSeconds); - KeyValue BLPop(string[] keys, int timeoutSeconds); - KeyValue BLPop(string[] keys, int timeoutSeconds); - string BRPop(string key, int timeoutSeconds); - T BRPop(string key, int timeoutSeconds); - KeyValue BRPop(string[] keys, int timeoutSeconds); - KeyValue BRPop(string[] keys, int timeoutSeconds); - string BRPopLPush(string source, string destination, int timeoutSeconds); - T BRPopLPush(string source, string destination, int timeoutSeconds); - string LIndex(string key, long index); - T LIndex(string key, long index); - long LInsert(string key, InsertDirection direction, object pivot, object element); - long LLen(string key); - string LPop(string key); - T LPop(string key); - long LPos(string key, T element, int rank = 0); - long[] LPos(string key, T element, int rank, int count, int maxLen); - long LPush(string key, params object[] elements); - long LPushX(string key, params object[] elements); - string[] LRange(string key, long start, long stop); - T[] LRange(string key, long start, long stop); - long LRem(string key, long count, T element); - long HDel(string key, params string[] fields); - bool HExists(string key, string field); - string HGet(string key, string field); - T HGet(string key, string field); - Dictionary HGetAll(string key); - Dictionary HGetAll(string key); - long HIncrBy(string key, string field, long increment); - decimal HIncrByFloat(string key, string field, decimal increment); - string[] HKeys(string key); - long HLen(string key); - string[] HMGet(string key, params string[] fields); - T[] HMGet(string key, params string[] fields); - void HMSet(string key, string field, T value, params object[] fieldValues); - void HMSet(string key, Dictionary keyValues); - ScanResult> HScan(string key, long cursor, string pattern, long count); - IEnumerable[]> HScan(string key, string pattern, long count); - long HSet(string key, string field, T value, params object[] fieldValues); - long HSet(string key, Dictionary keyValues); - bool HSetNx(string key, string field, T value); - long HStrLen(string key, string field); - string[] HVals(string key); - T[] HVals(string key); - bool PfAdd(string key, params object[] elements); - long PfCount(params string[] keys); - void PfMerge(string destkey, params string[] sourcekeys); - long Del(params string[] keys); - Byte[] Dump(string key); - bool Exists(string key); - long Exists(string[] keys); - bool Expire(string key, int seconds); - bool Expire(string key, TimeSpan expire); - bool ExpireAt(string key, DateTime timestamp); - string[] Keys(string pattern); - void Migrate(string host, int port, string key, int destinationDb, long timeoutMilliseconds, bool copy, bool replace, string authPassword, string auth2Username, string auth2Password, string[] keys); - void Dispose(); - RedisClient.PipelineHook StartPipe(); - RedisClient.DatabaseHook GetDatabase(int? index = null); - RedisClient.TransactionHook Multi(); - void Auth(string password); - void Auth(string username, string password); - void ClientCaching(Confirm confirm); - string ClientGetName(); - long ClientGetRedir(); - long ClientId(); - void ClientKill(string ipport); - long ClientKill(string ipport, long? clientid, ClientType? type, string username, string addr, Confirm? skipme); - string ClientList(ClientType? type = null); - void ClientPause(long timeoutMilliseconds); - void ClientReply(ClientReplyType type); - void ClientSetName(string connectionName); - void ClientTracking(bool on_off, long? redirect, string[] prefix, bool bcast, bool optin, bool optout, bool noloop); - bool ClientUnBlock(long clientid, ClientUnBlockType? type = null); - string Echo(string message); - Dictionary Hello(string protover, string username = null, string password = null, string clientname = null); - string Ping(string message = null); - void Quit(); - void Select(int index); - long GeoAdd(string key, params GeoMember[] members); - decimal? GeoDist(string key, string member1, string member2, GeoUnit unit = GeoUnit.m); - string GeoHash(string key, string member); - string[] GeoHash(string key, string[] members); - GeoMember GeoPos(string key, string member); - GeoMember[] GeoPos(string key, string[] members); - GeoRadiusResult[] GeoRadius(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); - long GeoRadiusStore(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); - GeoRadiusResult[] GeoRadiusByMember(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); - long GeoRadiusByMemberStore(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); + RedisClient.PipelineHook StartPipe(); + RedisClient.DatabaseHook GetDatabase(int? index = null); + RedisClient.TransactionHook Multi(); + void Auth(string password); + void Auth(string username, string password); + void ClientCaching(Confirm confirm); + string ClientGetName(); + long ClientGetRedir(); + long ClientId(); + void ClientKill(string ipport); + long ClientKill(string ipport, long? clientid, ClientType? type, string username, string addr, Confirm? skipme); + string ClientList(ClientType? type = null); + void ClientPause(long timeoutMilliseconds); + void ClientReply(ClientReplyType type); + void ClientSetName(string connectionName); + void ClientTracking(bool on_off, long? redirect, string[] prefix, bool bcast, bool optin, bool optout, bool noloop); + bool ClientUnBlock(long clientid, ClientUnBlockType? type = null); + string Echo(string message); + Dictionary Hello(string protover, string username = null, string password = null, string clientname = null); + string Ping(string message = null); + void Quit(); + void Select(int index); + long GeoAdd(string key, params GeoMember[] members); + decimal? GeoDist(string key, string member1, string member2, GeoUnit unit = GeoUnit.m); + string GeoHash(string key, string member); + string[] GeoHash(string key, string[] members); + GeoMember GeoPos(string key, string member); + GeoMember[] GeoPos(string key, string[] members); + GeoRadiusResult[] GeoRadius(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); + long GeoRadiusStore(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); + GeoRadiusResult[] GeoRadiusByMember(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); + long GeoRadiusByMemberStore(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); + long HDel(string key, params string[] fields); + bool HExists(string key, string field); + string HGet(string key, string field); + T HGet(string key, string field); + Dictionary HGetAll(string key); + Dictionary HGetAll(string key); + long HIncrBy(string key, string field, long increment); + decimal HIncrByFloat(string key, string field, decimal increment); + string[] HKeys(string key); + long HLen(string key); + string[] HMGet(string key, params string[] fields); + T[] HMGet(string key, params string[] fields); + void HMSet(string key, string field, T value, params object[] fieldValues); + void HMSet(string key, Dictionary keyValues); + ScanResult> HScan(string key, long cursor, string pattern, long count); + ScanResult> HScan(string key, long cursor, string pattern, long count); + IEnumerable[]> HScan(string key, string pattern, long count); + IEnumerable[]> HScan(string key, string pattern, long count); + long HSet(string key, string field, T value, params object[] fieldValues); + long HSet(string key, Dictionary keyValues); + bool HSetNx(string key, string field, T value); + long HStrLen(string key, string field); + string[] HVals(string key); + T[] HVals(string key); + bool PfAdd(string key, params object[] elements); + long PfCount(params string[] keys); + void PfMerge(string destkey, params string[] sourcekeys); + long Del(params string[] keys); + Byte[] Dump(string key); + bool Exists(string key); + long Exists(string[] keys); + bool Expire(string key, int seconds); + bool Expire(string key, TimeSpan expire); + bool ExpireAt(string key, DateTime timestamp); + string[] Keys(string pattern); + void Migrate(string host, int port, string key, int destinationDb, long timeoutMilliseconds, bool copy, bool replace, string authPassword, string auth2Username, string auth2Password, string[] keys); + bool Move(string key, int db); + long? ObjectRefCount(string key); + long ObjectIdleTime(string key); + string ObjectEncoding(string key); + long? ObjectFreq(string key); + bool Persist(string key); + bool PExpire(string key, int milliseconds); + bool PExpireAt(string key, DateTime timestamp); + long PTtl(string key); + string RandomKey(); + void Rename(string key, string newkey); + bool RenameNx(string key, string newkey); + void Restore(string key, Byte[] serializedValue); + void Restore(string key, int ttl, Byte[] serializedValue, bool replace = false, bool absTtl = false, int? idleTimeSeconds = null, decimal? frequency = null); + ScanResult Scan(long cursor, string pattern, long count, string type); + IEnumerable Scan(string pattern, long count, string type); + string[] Sort(string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); + long SortStore(string storeDestination, string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); + long Touch(params string[] keys); + long Ttl(string key); + KeyType Type(string key); + long UnLink(params string[] keys); + long Wait(long numreplicas, long timeoutMilliseconds); + string BLPop(string key, int timeoutSeconds); + T BLPop(string key, int timeoutSeconds); + KeyValue BLPop(string[] keys, int timeoutSeconds); + KeyValue BLPop(string[] keys, int timeoutSeconds); + string BRPop(string key, int timeoutSeconds); + T BRPop(string key, int timeoutSeconds); + KeyValue BRPop(string[] keys, int timeoutSeconds); + KeyValue BRPop(string[] keys, int timeoutSeconds); + string BRPopLPush(string source, string destination, int timeoutSeconds); + T BRPopLPush(string source, string destination, int timeoutSeconds); + string LIndex(string key, long index); + T LIndex(string key, long index); + long LInsert(string key, InsertDirection direction, object pivot, object element); + long LLen(string key); + string LPop(string key); + T LPop(string key); + long LPos(string key, T element, int rank = 0); + long[] LPos(string key, T element, int rank, int count, int maxLen); + long LPush(string key, params object[] elements); + long LPushX(string key, params object[] elements); + string[] LRange(string key, long start, long stop); + T[] LRange(string key, long start, long stop); + long LRem(string key, long count, T element); + void LSet(string key, long index, T element); + void LTrim(string key, long start, long stop); + string RPop(string key); + T RPop(string key); + string RPopLPush(string source, string destination); + T RPopLPush(string source, string destination); + long RPush(string key, params object[] elements); + long RPushX(string key, params object[] elements); + string BfReserve(string key, decimal errorRate, long capacity, int expansion = 2, bool nonScaling = false); + bool BfAdd(string key, string item); + bool[] BfMAdd(string key, string[] items); + string BfInsert(string key, string[] items, long? capacity = null, string error = null, int expansion = 2, bool noCreate = false, bool nonScaling = false); + bool BfExists(string key, string item); + bool[] BfMExists(string key, string[] items); + ScanResult BfScanDump(string key, long iter); + string BfLoadChunk(string key, long iter, Byte[] data); + Dictionary BfInfo(string key); + RedisClient.LockController Lock(string name, int timeoutSeconds, bool autoDelay = true); + string CmsInitByDim(string key, long width, long depth); + string CmsInitByProb(string key, decimal error, decimal probability); + long CmsIncrBy(string key, string item, long increment); + long[] CmsIncrBy(string key, Dictionary itemIncrements); + long[] CmsQuery(string key, string[] items); + string CmsMerge(string dest, long numKeys, string[] src, long[] weights); + Dictionary CmsInfo(string key); + string CfReserve(string key, long capacity, long? bucketSize = null, long? maxIterations = null, int? expansion = null); + bool CfAdd(string key, string item); + bool CfAddNx(string key, string item); + string CfInsert(string key, string[] items, long? capacity = null, bool noCreate = false); + string CfInsertNx(string key, string[] items, long? capacity = null, bool noCreate = false); + bool CfExists(string key, string item); + bool CfDel(string key, string item); + long CfCount(string key, string item); + ScanResult CfScanDump(string key, long iter); + string CfLoadChunk(string key, long iter, Byte[] data); + Dictionary CfInfo(string key); + string TopkReserve(string key, long topk, long width, long depth, decimal decay); + string[] TopkAdd(string key, string[] items); + string TopkIncrBy(string key, string item, long increment); + string[] TopkIncrBy(string key, Dictionary itemIncrements); + bool[] TopkQuery(string key, string[] items); + long[] TopkCount(string key, string[] items); + string[] TopkList(string key); + Dictionary TopkInfo(string key); + string JsonGet(string key, string indent = null, string newline = null, string space = null, params string[] paths); + string[] JsonMGet(string[] keys, string path = "$"); + void JsonSet(string key, string value, string path = "$", bool nx = false, bool xx = false); + void JsonMSet(string[] keys, string[] values, string[] paths); + void JsonMerge(string key, string path, string value); + long JsonDel(string key, string path = "$"); + long[] JsonArrInsert(string key, string path, long index = 0, params object[] values); + long[] JsonArrAppend(string key, string path, params object[] values); + long[] JsonArrIndex(string key, string path, T value) where T : struct; + long[] JsonArrLen(string key, string path); + object[] JsonArrPop(string key, string path, int index = -1); + long[] JsonArrTrim(string key, string path, int start, int stop); + long JsonClear(string key, string path = "$"); + long[] JsonDebugMemory(string key, string path = "$"); + long JsonForget(string key, string path = "$"); + string JsonNumIncrBy(string key, string path, double value); + string JsonNumMultBy(string key, string path, double value); + string[][] JsonObjKeys(string key, string path = "$"); + long[] JsonObjLen(string key, string path = "$"); + object[][] JsonResp(string key, string path = "$"); + long[] JsonStrAppend(string key, string value, string path = "$"); + long[] JsonStrLen(string key, string path = "$"); + bool[] JsonToggle(string key, string path = "$"); + string[] JsonType(string key, string path = "$"); + SubscribeListObject SubscribeList(string listKey, Action onMessage); + SubscribeListObject SubscribeList(string[] listKeys, Action onMessage); + SubscribeListBroadcastObject SubscribeListBroadcast(string listKey, string clientId, Action onMessage); + SubscribeStreamObject SubscribeStream(string streamKey, Action> onMessage); + long Publish(string channel, string message); + long Publish(string channel, Byte[] message); + string[] PubSubChannels(string pattern = "*"); + long PubSubNumSub(string channel); + long[] PubSubNumSub(string[] channels); + long PubSubNumPat(); + void PUnSubscribe(params string[] pattern); + void UnSubscribe(params string[] channels); + bool ScriptExists(string sha1); + bool[] ScriptExists(string[] sha1); + void ScriptFlush(); + void ScriptKill(); + string ScriptLoad(string script); + string[] AclCat(string categoryname = null); + long AclDelUser(params string[] username); + string AclGenPass(int bits = 0); + AclGetUserResult AclGetUser(string username = "default"); + string[] AclList(); + void AclLoad(); + LogResult[] AclLog(long count = 0); + void AclSave(); + void AclSetUser(string username, params string[] rule); + string[] AclUsers(); + string AclWhoami(); + string BgRewriteAof(); + string BgSave(string schedule = null); + object[] Command(); + long CommandCount(); + string[] CommandGetKeys(params string[] command); + object[] CommandInfo(params string[] command); + Dictionary ConfigGet(string parameter); + void ConfigResetStat(); + void ConfigRewrite(); + void ConfigSet(string parameter, T value); + long DbSize(); + string DebugObject(string key); + void FlushAll(bool isasync = false); + void FlushDb(bool isasync = false); + string Info(string section = null); + DateTime LastSave(); + string LatencyDoctor(); + string MemoryDoctor(); + string MemoryMallocStats(); + void MemoryPurge(); + Dictionary MemoryStats(); + long MemoryUsage(string key, long count = 0); + void ReplicaOf(string host, int port); + RoleResult Role(); + void Save(); + void SlaveOf(string host, int port); + void SwapDb(int index1, int index2); + DateTime Time(); + long SAdd(string key, params object[] members); + long SCard(string key); + string[] SDiff(params string[] keys); + T[] SDiff(params string[] keys); + long SDiffStore(string destination, params string[] keys); + string[] SInter(params string[] keys); + T[] SInter(params string[] keys); + long SInterStore(string destination, params string[] keys); + bool SIsMember(string key, T member); + string[] SMembers(string key); + T[] SMembers(string key); + bool[] SMIsMember(string key, params object[] members); + bool SMove(string source, string destination, T member); + string SPop(string key); + T SPop(string key); + string[] SPop(string key, int count); + T[] SPop(string key, int count); + string SRandMember(string key); + T SRandMember(string key); + string[] SRandMember(string key, int count); + T[] SRandMember(string key, int count); + long SRem(string key, params object[] members); + ScanResult SScan(string key, long cursor, string pattern, long count); + ScanResult SScan(string key, long cursor, string pattern, long count); + IEnumerable SScan(string key, string pattern, long count); + IEnumerable SScan(string key, string pattern, long count); + string[] SUnion(params string[] keys); + T[] SUnion(params string[] keys); + long SUnionStore(string destination, params string[] keys); + ZMember BZPopMin(string key, int timeoutSeconds); + KeyValue BZPopMin(string[] keys, int timeoutSeconds); + ZMember BZPopMax(string key, int timeoutSeconds); + KeyValue BZPopMax(string[] keys, int timeoutSeconds); + long ZAdd(string key, decimal score, string member, params object[] scoreMembers); + long ZAdd(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + long ZAddNx(string key, decimal score, string member, params object[] scoreMembers); + long ZAddNx(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + long ZAddXx(string key, decimal score, string member, params object[] scoreMembers); + long ZAddXx(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + long ZCard(string key); + long ZCount(string key, decimal min, decimal max); + long ZCount(string key, string min, string max); + decimal ZIncrBy(string key, decimal increment, string member); + long ZInterStore(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); + long ZLexCount(string key, string min, string max); + ZMember ZPopMin(string key); + ZMember[] ZPopMin(string key, int count); + ZMember ZPopMax(string key); + ZMember[] ZPopMax(string key, int count); + string[] ZRange(string key, decimal start, decimal stop); + ZMember[] ZRangeWithScores(string key, decimal start, decimal stop); + string[] ZRangeByLex(string key, string min, string max, int offset = 0, int count = 0); + string[] ZRangeByScore(string key, decimal min, decimal max, int offset = 0, int count = 0); + string[] ZRangeByScore(string key, string min, string max, int offset = 0, int count = 0); + ZMember[] ZRangeByScoreWithScores(string key, decimal min, decimal max, int offset = 0, int count = 0); + ZMember[] ZRangeByScoreWithScores(string key, string min, string max, int offset = 0, int count = 0); + long? ZRank(string key, string member); + long ZRem(string key, params string[] members); + long ZRemRangeByLex(string key, string min, string max); + long ZRemRangeByRank(string key, long start, long stop); + long ZRemRangeByScore(string key, decimal min, decimal max); + long ZRemRangeByScore(string key, string min, string max); + string[] ZRevRange(string key, decimal start, decimal stop); + ZMember[] ZRevRangeWithScores(string key, decimal start, decimal stop); + string[] ZRevRangeByLex(string key, decimal max, decimal min, int offset = 0, int count = 0); + string[] ZRevRangeByLex(string key, string max, string min, int offset = 0, int count = 0); + string[] ZRevRangeByScore(string key, decimal max, decimal min, int offset = 0, int count = 0); + string[] ZRevRangeByScore(string key, string max, string min, int offset = 0, int count = 0); + ZMember[] ZRevRangeByScoreWithScores(string key, decimal max, decimal min, int offset = 0, int count = 0); + ZMember[] ZRevRangeByScoreWithScores(string key, string max, string min, int offset = 0, int count = 0); + long ZRevRank(string key, string member); + decimal? ZScore(string key, string member); + long ZUnionStore(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); + string[] ZRandMember(string key, int count, bool repetition); + ZMember[] ZRandMemberWithScores(string key, int count, bool repetition); + ScanResult ZScan(string key, long cursor, string pattern, long count = 0); + IEnumerable ZScan(string key, string pattern, long count); + long XAck(string key, string group, params string[] id); + string XAdd(string key, string field, T value, params object[] fieldValues); + string XAdd(string key, long maxlen, string id, string field, T value, params object[] fieldValues); + string XAdd(string key, Dictionary fieldValues); + string XAdd(string key, long maxlen, string id, Dictionary fieldValues); + StreamsXAutoClaimResult XAutoClaim(string key, string group, string consumer, long minIdleTime, string start, long count = 0); + StreamsEntry[] XClaim(string key, string group, string consumer, long minIdleTime, params string[] id); + StreamsEntry[] XClaim(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); + string[] XClaimJustId(string key, string group, string consumer, long minIdleTime, params string[] id); + string[] XClaimJustId(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); + long XDel(string key, params string[] id); + void XGroupCreate(string key, string group, string id = "$", bool MkStream = false); + void XGroupSetId(string key, string group, string id = "$"); + bool XGroupDestroy(string key, string group); + void XGroupCreateConsumer(string key, string group, string consumer); + long XGroupDelConsumer(string key, string group, string consumer); + StreamsXInfoStreamResult XInfoStream(string key); + StreamsXInfoStreamFullResult XInfoStreamFull(string key, long count = 10); + StreamsXInfoGroupsResult[] XInfoGroups(string key); + StreamsXInfoConsumersResult[] XInfoConsumers(string key, string group); + long XLen(string key); + StreamsXPendingResult XPending(string key, string group); + StreamsXPendingConsumerResult[] XPending(string key, string group, string start, string end, long count, string consumer = null); + StreamsEntry[] XRange(string key, string start, string end, long count = -1); + StreamsEntry[] XRevRange(string key, string end, string start, long count = -1); + StreamsEntry XRead(long block, string key, string id); + StreamsEntryResult[] XRead(long count, long block, string key, string id, params string[] keyIds); + StreamsEntryResult[] XRead(long count, long block, Dictionary keyIds); + StreamsEntry XReadGroup(string group, string consumer, long block, string key, string id); + StreamsEntryResult[] XReadGroup(string group, string consumer, long count, long block, bool noack, string key, string id, params string[] keyIds); + StreamsEntryResult[] XReadGroup(string group, string consumer, long count, long block, bool noack, Dictionary keyIds); + long XTrim(string key, long count); + long Append(string key, T value); + long BitCount(string key, long start, long end); + long BitOp(BitOpOperation operation, string destkey, params string[] keys); + long BitPos(string key, bool bit, long? start = null, long? end = null); + long Decr(string key); + long DecrBy(string key, long decrement); + string Get(string key); + T Get(string key); + void Get(string key, Stream destination, int bufferSize = 1024); + bool GetBit(string key, long offset); + string GetRange(string key, long start, long end); + T GetRange(string key, long start, long end); + string GetSet(string key, T value); + long Incr(string key); + long IncrBy(string key, long increment); + decimal IncrByFloat(string key, decimal increment); + string[] MGet(params string[] keys); + T[] MGet(params string[] keys); + void MSet(string key, object value, params object[] keyValues); + void MSet(Dictionary keyValues); + bool MSetNx(string key, object value, params object[] keyValues); + bool MSetNx(Dictionary keyValues); + void PSetEx(string key, long milliseconds, T value); + void Set(string key, T value, int timeoutSeconds = 0); + void Set(string key, T value, TimeSpan timeout); + void Set(string key, T value, bool keepTtl); + bool SetNx(string key, T value, int timeoutSeconds); + bool SetNx(string key, T value, TimeSpan timeout); + bool SetXx(string key, T value, int timeoutSeconds = 0); + bool SetXx(string key, T value, TimeSpan timeout); + bool SetXx(string key, T value, bool keepTtl); + string Set(string key, T value, TimeSpan timeout, bool keepTtl, bool nx, bool xx, bool get); + long SetBit(string key, long offset, bool value); + void SetEx(string key, int seconds, T value); + bool SetNx(string key, T value); + long SetRange(string key, long offset, T value); + long StrLen(string key); + object Call(CommandPacket cmd); #if isasync - Task SetRangeAsync(string key, long offset, T value); - Task StrLenAsync(string key); - Task XInfoStreamAsync(string key); - Task XInfoStreamFullAsync(string key, long count = 10); - Task XInfoGroupsAsync(string key); - Task XInfoConsumersAsync(string key, string group); - Task XLenAsync(string key); - Task XPendingAsync(string key, string group); - Task XPendingAsync(string key, string group, string start, string end, long count, string consumer = null); - Task XRangeAsync(string key, string start, string end, long count = -1); - Task XRevRangeAsync(string key, string end, string start, long count = -1); - Task XReadAsync(long block, string key, string id); - Task XReadAsync(long count, long block, string key, string id, params string[] keyIds); - Task XReadAsync(long count, long block, Dictionary keyIds); - Task XReadGroupAsync(string group, string consumer, long block, string key, string id); - Task XReadGroupAsync(string group, string consumer, long count, long block, bool noack, string key, string id, params string[] keyIds); - Task XReadGroupAsync(string group, string consumer, long count, long block, bool noack, Dictionary keyIds); - Task XTrimAsync(string key, long count); - Task AppendAsync(string key, T value); - Task BitCountAsync(string key, long start, long end); - Task BitOpAsync(BitOpOperation operation, string destkey, params string[] keys); - Task BitPosAsync(string key, bool bit, long? start = null, long? end = null); - Task DecrAsync(string key); - Task DecrByAsync(string key, long decrement); - Task GetAsync(string key); - Task GetAsync(string key); - Task GetAsync(string key, Stream destination, int bufferSize = 1024); - Task GetBitAsync(string key, long offset); - Task GetRangeAsync(string key, long start, long end); - Task GetRangeAsync(string key, long start, long end); - Task GetSetAsync(string key, T value); - Task IncrAsync(string key); - Task IncrByAsync(string key, long increment); - Task IncrByFloatAsync(string key, decimal increment); - Task MGetAsync(params string[] keys); - Task MGetAsync(params string[] keys); - Task MSetAsync(string key, object value, params object[] keyValues); - Task MSetAsync(Dictionary keyValues); - Task MSetNxAsync(string key, object value, params object[] keyValues); - Task MSetNxAsync(Dictionary keyValues); - Task PSetExAsync(string key, long milliseconds, T value); - Task SetAsync(string key, T value, int timeoutSeconds = 0); - Task SetAsync(string key, T value, bool keepTtl); - Task SetNxAsync(string key, T value, int timeoutSeconds); - Task SetXxAsync(string key, T value, int timeoutSeconds = 0); - Task SetXxAsync(string key, T value, bool keepTtl); - Task SetAsync(string key, T value, TimeSpan timeout, bool keepTtl, bool nx, bool xx, bool get); - Task SetBitAsync(string key, long offset, bool value); - Task SetExAsync(string key, int seconds, T value); - Task SetNxAsync(string key, T value); - Task SetNxAsync(string key, T value, TimeSpan timeout); - Task SetXxAsync(string key, T value, TimeSpan timeout); - Task ZRangeAsync(string key, decimal start, decimal stop); - Task ZRangeWithScoresAsync(string key, decimal start, decimal stop); - Task ZRangeByLexAsync(string key, string min, string max, int offset = 0, int count = 0); - Task ZRangeByScoreAsync(string key, decimal min, decimal max, int offset = 0, int count = 0); - Task ZRangeByScoreAsync(string key, string min, string max, int offset = 0, int count = 0); - Task ZRangeByScoreWithScoresAsync(string key, decimal min, decimal max, int offset = 0, int count = 0); - Task ZRangeByScoreWithScoresAsync(string key, string min, string max, int offset = 0, int count = 0); - Task ZRankAsync(string key, string member); - Task ZRemAsync(string key, params string[] members); - Task ZRemRangeByLexAsync(string key, string min, string max); - Task ZRemRangeByRankAsync(string key, long start, long stop); - Task ZRemRangeByScoreAsync(string key, decimal min, decimal max); - Task ZRemRangeByScoreAsync(string key, string min, string max); - Task ZRevRangeAsync(string key, decimal start, decimal stop); - Task ZRevRangeWithScoresAsync(string key, decimal start, decimal stop); - Task ZRevRangeByLexAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); - Task ZRevRangeByLexAsync(string key, string max, string min, int offset = 0, int count = 0); - Task ZRevRangeByScoreAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); - Task ZRevRangeByScoreAsync(string key, string max, string min, int offset = 0, int count = 0); - Task ZRevRangeByScoreWithScoresAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); - Task ZRevRangeByScoreWithScoresAsync(string key, string max, string min, int offset = 0, int count = 0); - Task ZRevRankAsync(string key, string member); - Task ZScoreAsync(string key, string member); - Task ZUnionStoreAsync(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); - Task XAckAsync(string key, string group, params string[] id); - Task XAddAsync(string key, string field, T value, params object[] fieldValues); - Task XAddAsync(string key, long maxlen, string id, string field, T value, params object[] fieldValues); - Task XAddAsync(string key, Dictionary fieldValues); - Task XAddAsync(string key, long maxlen, string id, Dictionary fieldValues); - Task XAutoClaimAsync(string key, string group, string consumer, long minIdleTime, string start, long count = 0); - Task XClaimAsync(string key, string group, string consumer, long minIdleTime, params string[] id); - Task XClaimAsync(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); - Task XClaimJustIdAsync(string key, string group, string consumer, long minIdleTime, params string[] id); - Task XClaimJustIdAsync(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); - Task XDelAsync(string key, params string[] id); - Task XGroupCreateAsync(string key, string group, string id = "$", bool MkStream = false); - Task XGroupSetIdAsync(string key, string group, string id = "$"); - Task XGroupDestroyAsync(string key, string group); - Task XGroupCreateConsumerAsync(string key, string group, string consumer); - Task XGroupDelConsumerAsync(string key, string group, string consumer); - Task SDiffStoreAsync(string destination, params string[] keys); - Task SInterAsync(params string[] keys); - Task SInterAsync(params string[] keys); - Task SInterStoreAsync(string destination, params string[] keys); - Task SIsMemberAsync(string key, T member); - Task SMembersAsync(string key); - Task SMembersAsync(string key); - Task SMIsMemberAsync(string key, params object[] members); - Task SMoveAsync(string source, string destination, T member); - Task SPopAsync(string key); - Task SPopAsync(string key); - Task SPopAsync(string key, int count); - Task SPopAsync(string key, int count); - Task SRandMemberAsync(string key); - Task SRandMemberAsync(string key); - Task SRandMemberAsync(string key, int count); - Task SRandMemberAsync(string key, int count); - Task SRemAsync(string key, params object[] members); - Task> SScanAsync(string key, long cursor, string pattern, long count); - Task SUnionAsync(params string[] keys); - Task SUnionAsync(params string[] keys); - Task SUnionStoreAsync(string destination, params string[] keys); - Task BZPopMinAsync(string key, int timeoutSeconds); - Task> BZPopMinAsync(string[] keys, int timeoutSeconds); - Task BZPopMaxAsync(string key, int timeoutSeconds); - Task> BZPopMaxAsync(string[] keys, int timeoutSeconds); - Task ZAddAsync(string key, decimal score, string member, params object[] scoreMembers); - Task ZAddAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - Task ZAddNxAsync(string key, decimal score, string member, params object[] scoreMembers); - Task ZAddNxAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - Task ZAddXxAsync(string key, decimal score, string member, params object[] scoreMembers); - Task ZAddXxAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); - Task ZCardAsync(string key); - Task ZCountAsync(string key, decimal min, decimal max); - Task ZCountAsync(string key, string min, string max); - Task ZIncrByAsync(string key, decimal increment, string member); - Task ZInterStoreAsync(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); - Task ZLexCountAsync(string key, string min, string max); - Task ZPopMinAsync(string key); - Task ZPopMinAsync(string key, int count); - Task ZPopMaxAsync(string key); - Task ZPopMaxAsync(string key, int count); - Task JsonObjKeysAsync(string key, string path = "$"); - Task JsonObjLenAsync(string key, string path = "$"); - Task JsonRespAsync(string key, string path = "$"); - Task JsonStrAppendAsync(string key, string value, string path = "$"); - Task JsonStrLenAsync(string key, string path = "$"); - Task JsonToggleAsync(string key, string path = "$"); - Task JsonTypeAsync(string key, string path = "$"); - Task PublishAsync(string channel, string message); - Task PublishAsync(string channel, byte[] message); - Task PubSubChannelsAsync(string pattern = "*"); - Task PubSubNumSubAsync(string channel); - Task PubSubNumSubAsync(string[] channels); - Task PubSubNumPatAsync(); - ///// - ///// redis 7.0 shard pub/sub - ///// - //Task SPublishAsync(string shardchannel, string message); - //Task PubSubShardChannelsAsync(string pattern = "*"); - //Task PubSubShardNumSubAsync(string channel); - //Task PubSubShardNumSubAsync(string[] channels); - - Task EvalAsync(string script, string[] keys = null, params object[] arguments); - Task EvalShaAsync(string sha1, string[] keys = null, params object[] arguments); - Task ScriptExistsAsync(string sha1); - Task ScriptExistsAsync(string[] sha1); - Task ScriptFlushAsync(); - Task ScriptKillAsync(); - Task ScriptLoadAsync(string script); - object Eval(string script, string[] keys = null, params object[] arguments); - object EvalSha(string sha1, string[] keys = null, params object[] arguments); - object SlowLog(string subcommand, params string[] argument); - Task SAddAsync(string key, params object[] members); - Task SCardAsync(string key); - Task SDiffAsync(params string[] keys); - Task SDiffAsync(params string[] keys); - Task BfReserveAsync(string key, decimal errorRate, long capacity, int expansion = 2, bool nonScaling = false); - Task BfAddAsync(string key, string item); - Task BfMAddAsync(string key, string[] items); - Task BfInsertAsync(string key, string[] items, long? capacity = null, string error = null, int expansion = 2, bool noCreate = false, bool nonScaling = false); - Task BfExistsAsync(string key, string item); - Task BfMExistsAsync(string key, string[] items); - Task> BfScanDumpAsync(string key, long iter); - Task BfLoadChunkAsync(string key, long iter, Byte[] data); - Task> BfInfoAsync(string key); - Task CmsInitByDimAsync(string key, long width, long depth); - Task CmsInitByProbAsync(string key, decimal error, decimal probability); - Task CmsIncrByAsync(string key, string item, long increment); - Task CmsIncrByAsync(string key, Dictionary itemIncrements); - Task CmsQueryAsync(string key, string[] items); - Task CmsMergeAsync(string dest, long numKeys, string[] src, long[] weights); - Task> CmsInfoAsync(string key); - Task CfReserveAsync(string key, long capacity, long? bucketSize = null, long? maxIterations = null, int? expansion = null); - Task CfAddAsync(string key, string item); - Task CfAddNxAsync(string key, string item); - Task CfInsertAsync(string key, string[] items, long? capacity = null, bool noCreate = false); - Task CfInsertNxAsync(string key, string[] items, long? capacity = null, bool noCreate = false); - Task CfExistsAsync(string key, string item); - Task CfDelAsync(string key, string item); - Task CfCountAsync(string key, string item); - Task> CfScanDumpAsync(string key, long iter); - Task CfLoadChunkAsync(string key, long iter, Byte[] data); - Task> CfInfoAsync(string key); - Task TopkReserveAsync(string key, long topk, long width, long depth, decimal decay); - Task TopkAddAsync(string key, string[] items); - Task TopkIncrByAsync(string key, string item, long increment); - Task TopkIncrByAsync(string key, Dictionary itemIncrements); - Task TopkQueryAsync(string key, string[] items); - Task TopkCountAsync(string key, string[] items); - Task TopkListAsync(string key); - Task> TopkInfoAsync(string key); - Task JsonGetAsync(string key, string indent = null, string newline = null, string space = null, params string[] paths); - Task JsonMGetAsync(string[] keys, string path = "$"); - Task JsonSetAsync(string key, string value, string path = "$", bool nx = false, bool xx = false); - Task JsonMSetAsync(string[] keys, string[] values, string[] paths); - Task JsonMergeAsync(string key, string path, string value); - Task JsonDelAsync(string key, string path = "$"); - Task JsonArrInsertAsync(string key, string path, long index = 0, params object[] values); - Task JsonArrAppendAsync(string key, string path, params object[] values); - Task JsonArrIndexAsync(string key, string path, T value) where T : struct; - Task JsonArrLenAsync(string key, string path); - Task JsonArrPopAsync(string key, string path, int index = -1); - Task JsonArrTrimAsync(string key, string path, int start, int stop); - Task JsonClearAsync(string key, string path = "$"); - Task JsonDebugMemoryAsync(string key, string path = "$"); - Task JsonForgetAsync(string key, string path = "$"); - Task JsonNumIncrByAsync(string key, string path, Double value); - Task JsonNumMultByAsync(string key, string path, Double value); - Task BLPopAsync(string key, int timeoutSeconds); - Task BLPopAsync(string key, int timeoutSeconds); - Task> BLPopAsync(string[] keys, int timeoutSeconds); - Task> BLPopAsync(string[] keys, int timeoutSeconds); - Task BRPopAsync(string key, int timeoutSeconds); - Task BRPopAsync(string key, int timeoutSeconds); - Task> BRPopAsync(string[] keys, int timeoutSeconds); - Task> BRPopAsync(string[] keys, int timeoutSeconds); - Task BRPopLPushAsync(string source, string destination, int timeoutSeconds); - Task BRPopLPushAsync(string source, string destination, int timeoutSeconds); - Task LIndexAsync(string key, long index); - Task LIndexAsync(string key, long index); - Task LInsertAsync(string key, InsertDirection direction, object pivot, object element); - Task LLenAsync(string key); - Task LPopAsync(string key); - Task LPopAsync(string key); - Task LPosAsync(string key, T element, int rank = 0); - Task LPosAsync(string key, T element, int rank, int count, int maxLen); - Task LPushAsync(string key, params object[] elements); - Task LPushXAsync(string key, params object[] elements); - Task LRangeAsync(string key, long start, long stop); - Task LRangeAsync(string key, long start, long stop); - Task LRemAsync(string key, long count, T element); - Task LSetAsync(string key, long index, T element); - Task LTrimAsync(string key, long start, long stop); - Task RPopAsync(string key); - Task RPopAsync(string key); - Task RPopLPushAsync(string source, string destination); - Task RPopLPushAsync(string source, string destination); - Task RPushAsync(string key, params object[] elements); - Task RPushXAsync(string key, params object[] elements); - Task HMSetAsync(string key, string field, T value, params object[] fieldValues); - Task HMSetAsync(string key, Dictionary keyValues); - Task>> HScanAsync(string key, long cursor, string pattern, long count); - Task HSetAsync(string key, string field, T value, params object[] fieldValues); - Task HSetAsync(string key, Dictionary keyValues); - Task HSetNxAsync(string key, string field, T value); - Task HStrLenAsync(string key, string field); - Task HValsAsync(string key); - Task HValsAsync(string key); - Task PfAddAsync(string key, params object[] elements); - Task PfCountAsync(params string[] keys); - Task PfMergeAsync(string destkey, params string[] sourcekeys); - Task DelAsync(params string[] keys); - Task DumpAsync(string key); - Task ExistsAsync(string key); - Task ExistsAsync(string[] keys); - Task ExpireAsync(string key, int seconds); - Task ExpireAsync(string key, TimeSpan expire); - Task ExpireAtAsync(string key, DateTime timestamp); - Task KeysAsync(string pattern); - Task MigrateAsync(string host, int port, string key, int destinationDb, long timeoutMilliseconds, bool copy, bool replace, string authPassword, string auth2Username, string auth2Password, string[] keys); - Task MoveAsync(string key, int db); - Task ObjectRefCountAsync(string key); - Task ObjectIdleTimeAsync(string key); - Task ObjectEncodingAsync(string key); - Task ObjectFreqAsync(string key); - Task PersistAsync(string key); - Task PExpireAsync(string key, int milliseconds); - Task PExpireAtAsync(string key, DateTime timestamp); - Task PTtlAsync(string key); - Task RandomKeyAsync(); - Task RenameAsync(string key, string newkey); - Task RenameNxAsync(string key, string newkey); - Task RestoreAsync(string key, Byte[] serializedValue); - Task RestoreAsync(string key, int ttl, Byte[] serializedValue, bool replace = false, bool absTtl = false, int? idleTimeSeconds = null, decimal? frequency = null); - Task> ScanAsync(long cursor, string pattern, long count, string type); - Task SortAsync(string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); - Task SortStoreAsync(string storeDestination, string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); - Task TouchAsync(params string[] keys); - Task TtlAsync(string key); - Task TypeAsync(string key); - Task UnLinkAsync(params string[] keys); - Task WaitAsync(long numreplicas, long timeoutMilliseconds); - object Call(CommandPacket cmd); - Task CallAsync(CommandPacket cmd); - Task GeoAddAsync(string key, params GeoMember[] members); - Task GeoDistAsync(string key, string member1, string member2, GeoUnit unit = GeoUnit.m); - Task GeoHashAsync(string key, string member); - Task GeoHashAsync(string key, string[] members); - Task GeoPosAsync(string key, string member); - Task GeoPosAsync(string key, string[] members); - Task GeoRadiusAsync(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); - Task GeoRadiusStoreAsync(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); - Task GeoRadiusByMemberAsync(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); - Task GeoRadiusByMemberStoreAsync(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); - Task HDelAsync(string key, params string[] fields); - Task HExistsAsync(string key, string field); - Task HGetAsync(string key, string field); - Task HGetAsync(string key, string field); - Task> HGetAllAsync(string key); - Task> HGetAllAsync(string key); - Task HIncrByAsync(string key, string field, long increment); - Task HIncrByFloatAsync(string key, string field, decimal increment); - Task HKeysAsync(string key); - Task HLenAsync(string key); - Task HMGetAsync(string key, params string[] fields); - Task HMGetAsync(string key, params string[] fields); + Task CallAsync(CommandPacket cmd); + Task GeoAddAsync(string key, params GeoMember[] members); + Task GeoDistAsync(string key, string member1, string member2, GeoUnit unit = GeoUnit.m); + Task GeoHashAsync(string key, string member); + Task GeoHashAsync(string key, string[] members); + Task GeoPosAsync(string key, string member); + Task GeoPosAsync(string key, string[] members); + Task GeoRadiusAsync(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); + Task GeoRadiusStoreAsync(string key, decimal longitude, decimal latitude, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); + Task GeoRadiusByMemberAsync(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, bool withdoord = false, bool withdist = false, bool withhash = false, long? count = null, Collation? collation = null); + Task GeoRadiusByMemberStoreAsync(string key, string member, decimal radius, GeoUnit unit = GeoUnit.m, long? count = null, Collation? collation = null, string storekey = null, string storedistkey = null); + Task HDelAsync(string key, params string[] fields); + Task HExistsAsync(string key, string field); + Task HGetAsync(string key, string field); + Task HGetAsync(string key, string field); + Task> HGetAllAsync(string key); + Task> HGetAllAsync(string key); + Task HIncrByAsync(string key, string field, long increment); + Task HIncrByFloatAsync(string key, string field, decimal increment); + Task HKeysAsync(string key); + Task HLenAsync(string key); + Task HMGetAsync(string key, params string[] fields); + Task HMGetAsync(string key, params string[] fields); + Task HMSetAsync(string key, string field, T value, params object[] fieldValues); + Task HMSetAsync(string key, Dictionary keyValues); + Task>> HScanAsync(string key, long cursor, string pattern, long count); + Task>> HScanAsync(string key, long cursor, string pattern, long count); + Task HSetAsync(string key, string field, T value, params object[] fieldValues); + Task HSetAsync(string key, Dictionary keyValues); + Task HSetNxAsync(string key, string field, T value); + Task HStrLenAsync(string key, string field); + Task HValsAsync(string key); + Task HValsAsync(string key); + Task PfAddAsync(string key, params object[] elements); + Task PfCountAsync(params string[] keys); + Task PfMergeAsync(string destkey, params string[] sourcekeys); + Task DelAsync(params string[] keys); + Task DumpAsync(string key); + Task ExistsAsync(string key); + Task ExistsAsync(string[] keys); + Task ExpireAsync(string key, int seconds); + Task ExpireAsync(string key, TimeSpan expire); + Task ExpireAtAsync(string key, DateTime timestamp); + Task KeysAsync(string pattern); + Task MigrateAsync(string host, int port, string key, int destinationDb, long timeoutMilliseconds, bool copy, bool replace, string authPassword, string auth2Username, string auth2Password, string[] keys); + Task MoveAsync(string key, int db); + Task ObjectRefCountAsync(string key); + Task ObjectIdleTimeAsync(string key); + Task ObjectEncodingAsync(string key); + Task ObjectFreqAsync(string key); + Task PersistAsync(string key); + Task PExpireAsync(string key, int milliseconds); + Task PExpireAtAsync(string key, DateTime timestamp); + Task PTtlAsync(string key); + Task RandomKeyAsync(); + Task RenameAsync(string key, string newkey); + Task RenameNxAsync(string key, string newkey); + Task RestoreAsync(string key, Byte[] serializedValue); + Task RestoreAsync(string key, int ttl, Byte[] serializedValue, bool replace = false, bool absTtl = false, int? idleTimeSeconds = null, decimal? frequency = null); + Task> ScanAsync(long cursor, string pattern, long count, string type); + Task SortAsync(string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); + Task SortStoreAsync(string storeDestination, string key, string byPattern = null, long offset = 0, long count = 0, string[] getPatterns = null, Collation? collation = null, bool alpha = false); + Task TouchAsync(params string[] keys); + Task TtlAsync(string key); + Task TypeAsync(string key); + Task UnLinkAsync(params string[] keys); + Task WaitAsync(long numreplicas, long timeoutMilliseconds); + Task BLPopAsync(string key, int timeoutSeconds); + Task BLPopAsync(string key, int timeoutSeconds); + Task> BLPopAsync(string[] keys, int timeoutSeconds); + Task> BLPopAsync(string[] keys, int timeoutSeconds); + Task BRPopAsync(string key, int timeoutSeconds); + Task BRPopAsync(string key, int timeoutSeconds); + Task> BRPopAsync(string[] keys, int timeoutSeconds); + Task> BRPopAsync(string[] keys, int timeoutSeconds); + Task BRPopLPushAsync(string source, string destination, int timeoutSeconds); + Task BRPopLPushAsync(string source, string destination, int timeoutSeconds); + Task LIndexAsync(string key, long index); + Task LIndexAsync(string key, long index); + Task LInsertAsync(string key, InsertDirection direction, object pivot, object element); + Task LLenAsync(string key); + Task LPopAsync(string key); + Task LPopAsync(string key); + Task LPosAsync(string key, T element, int rank = 0); + Task LPosAsync(string key, T element, int rank, int count, int maxLen); + Task LPushAsync(string key, params object[] elements); + Task LPushXAsync(string key, params object[] elements); + Task LRangeAsync(string key, long start, long stop); + Task LRangeAsync(string key, long start, long stop); + Task LRemAsync(string key, long count, T element); + Task LSetAsync(string key, long index, T element); + Task LTrimAsync(string key, long start, long stop); + Task RPopAsync(string key); + Task RPopAsync(string key); + Task RPopLPushAsync(string source, string destination); + Task RPopLPushAsync(string source, string destination); + Task RPushAsync(string key, params object[] elements); + Task RPushXAsync(string key, params object[] elements); + Task BfReserveAsync(string key, decimal errorRate, long capacity, int expansion = 2, bool nonScaling = false); + Task BfAddAsync(string key, string item); + Task BfMAddAsync(string key, string[] items); + Task BfInsertAsync(string key, string[] items, long? capacity = null, string error = null, int expansion = 2, bool noCreate = false, bool nonScaling = false); + Task BfExistsAsync(string key, string item); + Task BfMExistsAsync(string key, string[] items); + Task> BfScanDumpAsync(string key, long iter); + Task BfLoadChunkAsync(string key, long iter, Byte[] data); + Task> BfInfoAsync(string key); + Task CmsInitByDimAsync(string key, long width, long depth); + Task CmsInitByProbAsync(string key, decimal error, decimal probability); + Task CmsIncrByAsync(string key, string item, long increment); + Task CmsIncrByAsync(string key, Dictionary itemIncrements); + Task CmsQueryAsync(string key, string[] items); + Task CmsMergeAsync(string dest, long numKeys, string[] src, long[] weights); + Task> CmsInfoAsync(string key); + Task CfReserveAsync(string key, long capacity, long? bucketSize = null, long? maxIterations = null, int? expansion = null); + Task CfAddAsync(string key, string item); + Task CfAddNxAsync(string key, string item); + Task CfInsertAsync(string key, string[] items, long? capacity = null, bool noCreate = false); + Task CfInsertNxAsync(string key, string[] items, long? capacity = null, bool noCreate = false); + Task CfExistsAsync(string key, string item); + Task CfDelAsync(string key, string item); + Task CfCountAsync(string key, string item); + Task> CfScanDumpAsync(string key, long iter); + Task CfLoadChunkAsync(string key, long iter, Byte[] data); + Task> CfInfoAsync(string key); + Task TopkReserveAsync(string key, long topk, long width, long depth, decimal decay); + Task TopkAddAsync(string key, string[] items); + Task TopkIncrByAsync(string key, string item, long increment); + Task TopkIncrByAsync(string key, Dictionary itemIncrements); + Task TopkQueryAsync(string key, string[] items); + Task TopkCountAsync(string key, string[] items); + Task TopkListAsync(string key); + Task> TopkInfoAsync(string key); + Task JsonGetAsync(string key, string indent = null, string newline = null, string space = null, params string[] paths); + Task JsonMGetAsync(string[] keys, string path = "$"); + Task JsonSetAsync(string key, string value, string path = "$", bool nx = false, bool xx = false); + Task JsonMSetAsync(string[] keys, string[] values, string[] paths); + Task JsonMergeAsync(string key, string path, string value); + Task JsonDelAsync(string key, string path = "$"); + Task JsonArrInsertAsync(string key, string path, long index = 0, params object[] values); + Task JsonArrAppendAsync(string key, string path, params object[] values); + Task JsonArrIndexAsync(string key, string path, T value) where T : struct; + Task JsonArrLenAsync(string key, string path); + Task JsonArrPopAsync(string key, string path, int index = -1); + Task JsonArrTrimAsync(string key, string path, int start, int stop); + Task JsonClearAsync(string key, string path = "$"); + Task JsonDebugMemoryAsync(string key, string path = "$"); + Task JsonForgetAsync(string key, string path = "$"); + Task JsonNumIncrByAsync(string key, string path, double value); + Task JsonNumMultByAsync(string key, string path, double value); + Task JsonObjKeysAsync(string key, string path = "$"); + Task JsonObjLenAsync(string key, string path = "$"); + Task JsonRespAsync(string key, string path = "$"); + Task JsonStrAppendAsync(string key, string value, string path = "$"); + Task JsonStrLenAsync(string key, string path = "$"); + Task JsonToggleAsync(string key, string path = "$"); + Task JsonTypeAsync(string key, string path = "$"); + Task PublishAsync(string channel, string message); + Task PublishAsync(string channel, Byte[] message); + Task PubSubChannelsAsync(string pattern = "*"); + Task PubSubNumSubAsync(string channel); + Task PubSubNumSubAsync(string[] channels); + Task PubSubNumPatAsync(); + IDisposable PSubscribe(string pattern, Action handler); + IDisposable PSubscribe(string[] pattern, Action handler); + IDisposable Subscribe(string[] channels, Action handler); + IDisposable Subscribe(string channel, Action handler); + Task EvalAsync(string script, string[] keys = null, params object[] arguments); + Task EvalShaAsync(string sha1, string[] keys = null, params object[] arguments); + Task ScriptExistsAsync(string sha1); + Task ScriptExistsAsync(string[] sha1); + Task ScriptFlushAsync(); + Task ScriptKillAsync(); + Task ScriptLoadAsync(string script); + object Eval(string script, string[] keys = null, params object[] arguments); + object EvalSha(string sha1, string[] keys = null, params object[] arguments); + object SlowLog(string subcommand, params string[] argument); + Task SAddAsync(string key, params object[] members); + Task SCardAsync(string key); + Task SDiffAsync(params string[] keys); + Task SDiffAsync(params string[] keys); + Task SDiffStoreAsync(string destination, params string[] keys); + Task SInterAsync(params string[] keys); + Task SInterAsync(params string[] keys); + Task SInterStoreAsync(string destination, params string[] keys); + Task SIsMemberAsync(string key, T member); + Task SMembersAsync(string key); + Task SMembersAsync(string key); + Task SMIsMemberAsync(string key, params object[] members); + Task SMoveAsync(string source, string destination, T member); + Task SPopAsync(string key); + Task SPopAsync(string key); + Task SPopAsync(string key, int count); + Task SPopAsync(string key, int count); + Task SRandMemberAsync(string key); + Task SRandMemberAsync(string key); + Task SRandMemberAsync(string key, int count); + Task SRandMemberAsync(string key, int count); + Task SRemAsync(string key, params object[] members); + Task> SScanAsync(string key, long cursor, string pattern, long count); + Task> SScanAsync(string key, long cursor, string pattern, long count); + Task SUnionAsync(params string[] keys); + Task SUnionAsync(params string[] keys); + Task SUnionStoreAsync(string destination, params string[] keys); + Task BZPopMinAsync(string key, int timeoutSeconds); + Task> BZPopMinAsync(string[] keys, int timeoutSeconds); + Task BZPopMaxAsync(string key, int timeoutSeconds); + Task> BZPopMaxAsync(string[] keys, int timeoutSeconds); + Task ZAddAsync(string key, decimal score, string member, params object[] scoreMembers); + Task ZAddAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + Task ZAddNxAsync(string key, decimal score, string member, params object[] scoreMembers); + Task ZAddNxAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + Task ZAddXxAsync(string key, decimal score, string member, params object[] scoreMembers); + Task ZAddXxAsync(string key, ZMember[] scoreMembers, ZAddThan? than = null, bool ch = false); + Task ZCardAsync(string key); + Task ZCountAsync(string key, decimal min, decimal max); + Task ZCountAsync(string key, string min, string max); + Task ZIncrByAsync(string key, decimal increment, string member); + Task ZInterStoreAsync(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); + Task ZLexCountAsync(string key, string min, string max); + Task ZPopMinAsync(string key); + Task ZPopMinAsync(string key, int count); + Task ZPopMaxAsync(string key); + Task ZPopMaxAsync(string key, int count); + Task ZRangeAsync(string key, decimal start, decimal stop); + Task ZRangeWithScoresAsync(string key, decimal start, decimal stop); + Task ZRangeByLexAsync(string key, string min, string max, int offset = 0, int count = 0); + Task ZRangeByScoreAsync(string key, decimal min, decimal max, int offset = 0, int count = 0); + Task ZRangeByScoreAsync(string key, string min, string max, int offset = 0, int count = 0); + Task ZRangeByScoreWithScoresAsync(string key, decimal min, decimal max, int offset = 0, int count = 0); + Task ZRangeByScoreWithScoresAsync(string key, string min, string max, int offset = 0, int count = 0); + Task ZRankAsync(string key, string member); + Task ZRemAsync(string key, params string[] members); + Task ZRemRangeByLexAsync(string key, string min, string max); + Task ZRemRangeByRankAsync(string key, long start, long stop); + Task ZRemRangeByScoreAsync(string key, decimal min, decimal max); + Task ZRemRangeByScoreAsync(string key, string min, string max); + Task ZRevRangeAsync(string key, decimal start, decimal stop); + Task ZRevRangeWithScoresAsync(string key, decimal start, decimal stop); + Task ZRevRangeByLexAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); + Task ZRevRangeByLexAsync(string key, string max, string min, int offset = 0, int count = 0); + Task ZRevRangeByScoreAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); + Task ZRevRangeByScoreAsync(string key, string max, string min, int offset = 0, int count = 0); + Task ZRevRangeByScoreWithScoresAsync(string key, decimal max, decimal min, int offset = 0, int count = 0); + Task ZRevRangeByScoreWithScoresAsync(string key, string max, string min, int offset = 0, int count = 0); + Task ZRevRankAsync(string key, string member); + Task ZScoreAsync(string key, string member); + Task ZUnionStoreAsync(string destination, string[] keys, int[] weights = null, ZAggregate? aggregate = null); + Task XAckAsync(string key, string group, params string[] id); + Task XAddAsync(string key, string field, T value, params object[] fieldValues); + Task XAddAsync(string key, long maxlen, string id, string field, T value, params object[] fieldValues); + Task XAddAsync(string key, Dictionary fieldValues); + Task XAddAsync(string key, long maxlen, string id, Dictionary fieldValues); + Task XAutoClaimAsync(string key, string group, string consumer, long minIdleTime, string start, long count = 0); + Task XClaimAsync(string key, string group, string consumer, long minIdleTime, params string[] id); + Task XClaimAsync(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); + Task XClaimJustIdAsync(string key, string group, string consumer, long minIdleTime, params string[] id); + Task XClaimJustIdAsync(string key, string group, string consumer, long minIdleTime, string[] id, long idle, long retryCount, bool force); + Task XDelAsync(string key, params string[] id); + Task XGroupCreateAsync(string key, string group, string id = "$", bool MkStream = false); + Task XGroupSetIdAsync(string key, string group, string id = "$"); + Task XGroupDestroyAsync(string key, string group); + Task XGroupCreateConsumerAsync(string key, string group, string consumer); + Task XGroupDelConsumerAsync(string key, string group, string consumer); + Task XInfoStreamAsync(string key); + Task XInfoStreamFullAsync(string key, long count = 10); + Task XInfoGroupsAsync(string key); + Task XInfoConsumersAsync(string key, string group); + Task XLenAsync(string key); + Task XPendingAsync(string key, string group); + Task XPendingAsync(string key, string group, string start, string end, long count, string consumer = null); + Task XRangeAsync(string key, string start, string end, long count = -1); + Task XRevRangeAsync(string key, string end, string start, long count = -1); + Task XReadAsync(long block, string key, string id); + Task XReadAsync(long count, long block, string key, string id, params string[] keyIds); + Task XReadAsync(long count, long block, Dictionary keyIds); + Task XReadGroupAsync(string group, string consumer, long block, string key, string id); + Task XReadGroupAsync(string group, string consumer, long count, long block, bool noack, string key, string id, params string[] keyIds); + Task XReadGroupAsync(string group, string consumer, long count, long block, bool noack, Dictionary keyIds); + Task XTrimAsync(string key, long count); + Task AppendAsync(string key, T value); + Task BitCountAsync(string key, long start, long end); + Task BitOpAsync(BitOpOperation operation, string destkey, params string[] keys); + Task BitPosAsync(string key, bool bit, long? start = null, long? end = null); + Task DecrAsync(string key); + Task DecrByAsync(string key, long decrement); + Task GetAsync(string key); + Task GetAsync(string key); + Task GetAsync(string key, Stream destination, int bufferSize = 1024); + Task GetBitAsync(string key, long offset); + Task GetRangeAsync(string key, long start, long end); + Task GetRangeAsync(string key, long start, long end); + Task GetSetAsync(string key, T value); + Task IncrAsync(string key); + Task IncrByAsync(string key, long increment); + Task IncrByFloatAsync(string key, decimal increment); + Task MGetAsync(params string[] keys); + Task MGetAsync(params string[] keys); + Task MSetAsync(string key, object value, params object[] keyValues); + Task MSetAsync(Dictionary keyValues); + Task MSetNxAsync(string key, object value, params object[] keyValues); + Task MSetNxAsync(Dictionary keyValues); + Task PSetExAsync(string key, long milliseconds, T value); + Task SetAsync(string key, T value, int timeoutSeconds = 0); + Task SetAsync(string key, T value, bool keepTtl); + Task SetNxAsync(string key, T value, int timeoutSeconds); + Task SetNxAsync(string key, T value, TimeSpan timeout); + Task SetXxAsync(string key, T value, int timeoutSeconds = 0); + Task SetXxAsync(string key, T value, TimeSpan timeout); + Task SetXxAsync(string key, T value, bool keepTtl); + Task SetAsync(string key, T value, TimeSpan timeout, bool keepTtl, bool nx, bool xx, bool get); + Task SetBitAsync(string key, long offset, bool value); + Task SetExAsync(string key, int seconds, T value); + Task SetNxAsync(string key, T value); + Task SetRangeAsync(string key, long offset, T value); + Task StrLenAsync(string key); #endif - } + } } \ No newline at end of file diff --git a/src/FreeRedis/Internal/RespHelper.cs b/src/FreeRedis/Internal/RespHelper.cs index 9ae17d5..473f724 100644 --- a/src/FreeRedis/Internal/RespHelper.cs +++ b/src/FreeRedis/Internal/RespHelper.cs @@ -626,7 +626,7 @@ static string DisplayCsharp(this Type type, bool isNameSpace = true) } return sb.Append(">").ToString(); } - static string DisplayCsharp(this MethodInfo method, bool isOverride) + public static string DisplayCsharp(this MethodInfo method, bool isOverride) { if (method == null) return null; var sb = new StringBuilder();