Commit 0ff068e9 authored by Nick Craver's avatar Nick Craver

Cleanup: Interfaces

Still a lot of docs work to follow-up with here.
parent 1a25068a
namespace StackExchange.Redis
{
/// <summary>
/// If an IProfiledCommand is a retransmission of a previous command, this enum
/// is used to indicate what prompted the retransmission.
///
/// This can be used to distinguish between transient causes (moving hashslots, joining nodes, etc.)
/// and incorrect routing.
/// </summary>
public enum RetransmissionReasonType
{
/// <summary>
/// No stated reason
/// </summary>
None = 0,
/// <summary>
/// Issued to investigate which node owns a key
/// </summary>
Ask,
/// <summary>
/// A node has indicated that it does *not* own the given key
/// </summary>
Moved
}
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
interface ICompletable internal interface ICompletable
{ {
void AppendStormLog(StringBuilder sb); void AppendStormLog(StringBuilder sb);
......
...@@ -10,7 +10,6 @@ namespace StackExchange.Redis ...@@ -10,7 +10,6 @@ namespace StackExchange.Redis
/// </summary> /// </summary>
public interface IConnectionMultiplexer public interface IConnectionMultiplexer
{ {
#if DEBUG #if DEBUG
/// <summary> /// <summary>
/// For debugging; when not enabled, servers cannot connect /// For debugging; when not enabled, servers cannot connect
......
...@@ -4,13 +4,11 @@ ...@@ -4,13 +4,11 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
/// <summary> /// <summary>
/// Describes functionality that is common to both standalone redis servers and redis clusters /// Describes functionality that is common to both standalone redis servers and redis clusters
/// </summary> /// </summary>
public interface IDatabase : IRedis, IDatabaseAsync public interface IDatabase : IRedis, IDatabaseAsync
{ {
/// <summary> /// <summary>
/// The numeric identifier of this database /// The numeric identifier of this database
/// </summary> /// </summary>
...@@ -23,14 +21,12 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -23,14 +21,12 @@ public interface IDatabase : IRedis, IDatabaseAsync
[IgnoreNamePrefix] [IgnoreNamePrefix]
IBatch CreateBatch(object asyncState = null); IBatch CreateBatch(object asyncState = null);
/// <summary> /// <summary>
/// Atomically transfer a key from a source Redis instance to a destination Redis instance. On success the key is deleted from the original instance by default, and is guaranteed to exist in the target instance. /// Atomically transfer a key from a source Redis instance to a destination Redis instance. On success the key is deleted from the original instance by default, and is guaranteed to exist in the target instance.
/// </summary> /// </summary>
/// <remarks>http://redis.io/commands/MIGRATE</remarks> /// <remarks>http://redis.io/commands/MIGRATE</remarks>
void KeyMigrate(RedisKey key, EndPoint toServer, int toDatabase = 0, int timeoutMilliseconds = 0, MigrateOptions migrateOptions = MigrateOptions.None, CommandFlags flags = CommandFlags.None); void KeyMigrate(RedisKey key, EndPoint toServer, int toDatabase = 0, int timeoutMilliseconds = 0, MigrateOptions migrateOptions = MigrateOptions.None, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Allows creation of a group of operations that will be sent to the server as a single unit, /// Allows creation of a group of operations that will be sent to the server as a single unit,
/// and processed on the server as a single unit. /// and processed on the server as a single unit.
...@@ -51,7 +47,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -51,7 +47,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>http://redis.io/commands/geoadd</remarks> /// <remarks>http://redis.io/commands/geoadd</remarks>
bool GeoAdd(RedisKey key, double longitude, double latitude, RedisValue member, CommandFlags flags = CommandFlags.None); bool GeoAdd(RedisKey key, double longitude, double latitude, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Add the specified member to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members. /// Add the specified member to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members.
/// </summary> /// </summary>
...@@ -59,7 +54,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -59,7 +54,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>http://redis.io/commands/geoadd</remarks> /// <remarks>http://redis.io/commands/geoadd</remarks>
bool GeoAdd(RedisKey key, StackExchange.Redis.GeoEntry value, CommandFlags flags = CommandFlags.None); bool GeoAdd(RedisKey key, StackExchange.Redis.GeoEntry value, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Add the specified members to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members. /// Add the specified members to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members.
/// </summary> /// </summary>
...@@ -95,7 +89,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -95,7 +89,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>http://redis.io/commands/geohash</remarks> /// <remarks>http://redis.io/commands/geohash</remarks>
string GeoHash(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None); string GeoHash(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Return the positions (longitude,latitude) of all the specified members of the geospatial index represented by the sorted set at key. /// Return the positions (longitude,latitude) of all the specified members of the geospatial index represented by the sorted set at key.
/// </summary> /// </summary>
...@@ -549,7 +542,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -549,7 +542,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <returns>A dynamic representation of the command's result</returns> /// <returns>A dynamic representation of the command's result</returns>
RedisResult Execute(string command, ICollection<object> args, CommandFlags flags = CommandFlags.None); RedisResult Execute(string command, ICollection<object> args, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Execute a Lua script against the server /// Execute a Lua script against the server
/// </summary> /// </summary>
...@@ -822,8 +814,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -822,8 +814,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>http://redis.io/commands/zrevrange</remarks> /// <remarks>http://redis.io/commands/zrevrange</remarks>
SortedSetEntry[] SortedSetRangeByRankWithScores(RedisKey key, long start = 0, long stop = -1, Order order = Order.Ascending, CommandFlags flags = CommandFlags.None); SortedSetEntry[] SortedSetRangeByRankWithScores(RedisKey key, long start = 0, long stop = -1, Order order = Order.Ascending, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Returns the specified range of elements in the sorted set stored at key. By default the elements are considered to be ordered from the lowest to the highest score. Lexicographical order is used for elements with equal score. /// Returns the specified range of elements in the sorted set stored at key. By default the elements are considered to be ordered from the lowest to the highest score. Lexicographical order is used for elements with equal score.
/// Start and stop are used to specify the min and max range for score values. Similar to other range methods the values are inclusive. /// Start and stop are used to specify the min and max range for score values. Similar to other range methods the values are inclusive.
...@@ -919,10 +909,6 @@ public interface IDatabase : IRedis, IDatabaseAsync ...@@ -919,10 +909,6 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>http://redis.io/commands/zscore</remarks> /// <remarks>http://redis.io/commands/zscore</remarks>
double? SortedSetScore(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None); double? SortedSetScore(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string, /// If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string,
/// so APPEND will be similar to SET in this special case. /// so APPEND will be similar to SET in this special case.
......
...@@ -23,7 +23,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -23,7 +23,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/geoadd</remarks> /// <remarks>https://redis.io/commands/geoadd</remarks>
Task<bool> GeoAddAsync(RedisKey key, double longitude, double latitude, RedisValue member, CommandFlags flags = CommandFlags.None); Task<bool> GeoAddAsync(RedisKey key, double longitude, double latitude, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Add the specified member to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members. /// Add the specified member to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members.
/// </summary> /// </summary>
...@@ -31,7 +30,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -31,7 +30,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/geoadd</remarks> /// <remarks>https://redis.io/commands/geoadd</remarks>
Task<bool> GeoAddAsync(RedisKey key, StackExchange.Redis.GeoEntry value, CommandFlags flags = CommandFlags.None); Task<bool> GeoAddAsync(RedisKey key, StackExchange.Redis.GeoEntry value, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Add the specified members to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members. /// Add the specified members to the set stored at key. Specified members that are already a member of this set are ignored. If key does not exist, a new set is created before adding the specified members.
/// </summary> /// </summary>
...@@ -67,7 +65,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -67,7 +65,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/geohash</remarks> /// <remarks>https://redis.io/commands/geohash</remarks>
Task<string> GeoHashAsync(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None); Task<string> GeoHashAsync(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Return the positions (longitude,latitude) of all the specified members of the geospatial index represented by the sorted set at key. /// Return the positions (longitude,latitude) of all the specified members of the geospatial index represented by the sorted set at key.
/// </summary> /// </summary>
...@@ -96,7 +93,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -96,7 +93,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/georadius</remarks> /// <remarks>https://redis.io/commands/georadius</remarks>
Task<GeoRadiusResult[]> GeoRadiusAsync(RedisKey key, double longitude, double latitude, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order? order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None); Task<GeoRadiusResult[]> GeoRadiusAsync(RedisKey key, double longitude, double latitude, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order? order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Increments the number stored at field in the hash stored at key by increment. If key does not exist, a new key holding a hash is created. If field does not exist or holds a string that cannot be interpreted as integer, the value is set to 0 before the operation is performed. /// Increments the number stored at field in the hash stored at key by increment. If key does not exist, a new key holding a hash is created. If field does not exist or holds a string that cannot be interpreted as integer, the value is set to 0 before the operation is performed.
/// </summary> /// </summary>
...@@ -310,7 +306,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -310,7 +306,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/persist</remarks> /// <remarks>https://redis.io/commands/persist</remarks>
Task<bool> KeyExpireAsync(RedisKey key, DateTime? expiry, CommandFlags flags = CommandFlags.None); Task<bool> KeyExpireAsync(RedisKey key, DateTime? expiry, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Atomically transfer a key from a source Redis instance to a destination Redis instance. On success the key is deleted from the original instance by default, and is guaranteed to exist in the target instance. /// Atomically transfer a key from a source Redis instance to a destination Redis instance. On success the key is deleted from the original instance by default, and is guaranteed to exist in the target instance.
/// </summary> /// </summary>
...@@ -521,7 +516,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -521,7 +516,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <returns>A dynamic representation of the command's result</returns> /// <returns>A dynamic representation of the command's result</returns>
Task<RedisResult> ExecuteAsync(string command, params object[] args); Task<RedisResult> ExecuteAsync(string command, params object[] args);
/// <summary> /// <summary>
/// Execute an arbitrary command against the server; this is primarily intended for /// Execute an arbitrary command against the server; this is primarily intended for
/// executing modules, but may also be used to provide access to new features that lack /// executing modules, but may also be used to provide access to new features that lack
...@@ -863,7 +857,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -863,7 +857,6 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/zscore</remarks> /// <remarks>https://redis.io/commands/zscore</remarks>
Task<double?> SortedSetScoreAsync(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None); Task<double?> SortedSetScoreAsync(RedisKey key, RedisValue member, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string, /// If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string,
/// so APPEND will be similar to SET in this special case. /// so APPEND will be similar to SET in this special case.
...@@ -1015,7 +1008,6 @@ public interface IDatabaseAsync : IRedisAsync ...@@ -1015,7 +1008,6 @@ public interface IDatabaseAsync : IRedisAsync
Task<RedisValue> StringSetRangeAsync(RedisKey key, long offset, RedisValue value, CommandFlags flags = CommandFlags.None); Task<RedisValue> StringSetRangeAsync(RedisKey key, long offset, RedisValue value, CommandFlags flags = CommandFlags.None);
} }
/// <summary> /// <summary>
/// Describes a value/expiry pair /// Describes a value/expiry pair
/// </summary> /// </summary>
......
...@@ -3,29 +3,6 @@ ...@@ -3,29 +3,6 @@
namespace StackExchange.Redis namespace StackExchange.Redis
{ {
/// <summary>
/// If an IProfiledCommand is a retransmission of a previous command, this enum
/// is used to indicate what prompted the retransmission.
///
/// This can be used to distinguish between transient causes (moving hashslots, joining nodes, etc.)
/// and incorrect routing.
/// </summary>
public enum RetransmissionReasonType
{
/// <summary>
/// No stated reason
/// </summary>
None = 0,
/// <summary>
/// Issued to investigate which node owns a key
/// </summary>
Ask,
/// <summary>
/// A node has indicated that it does *not* own the given key
/// </summary>
Moved
}
/// <summary> /// <summary>
/// A profiled command against a redis instance. /// A profiled command against a redis instance.
/// ///
......
...@@ -11,32 +11,12 @@ public partial interface IRedis : IRedisAsync ...@@ -11,32 +11,12 @@ public partial interface IRedis : IRedisAsync
/// <summary> /// <summary>
/// This command is often used to test if a connection is still alive, or to measure latency. /// This command is often used to test if a connection is still alive, or to measure latency.
/// </summary> /// </summary>
/// <param name="flags">The command flags to use when pinging.</param>
/// <returns>The observed latency.</returns> /// <returns>The observed latency.</returns>
/// <remarks>https://redis.io/commands/ping</remarks> /// <remarks>https://redis.io/commands/ping</remarks>
TimeSpan Ping(CommandFlags flags = CommandFlags.None); TimeSpan Ping(CommandFlags flags = CommandFlags.None);
} }
/// <summary>
/// Represents a resumable, cursor-based scanning operation
/// </summary>
public interface IScanningCursor
{
/// <summary>
/// Returns the cursor that represents the *active* page of results (not the pending/next page of results as returned by SCAN/HSCAN/ZSCAN/SSCAN)
/// </summary>
long Cursor { get; }
/// <summary>
/// The page size of the current operation
/// </summary>
int PageSize { get; }
/// <summary>
/// The offset into the current page
/// </summary>
int PageOffset { get; }
}
[Conditional("DEBUG")] [Conditional("DEBUG")]
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
internal class IgnoreNamePrefixAttribute : Attribute internal class IgnoreNamePrefixAttribute : Attribute
...@@ -46,6 +26,6 @@ public IgnoreNamePrefixAttribute(bool ignoreEntireMethod = false) ...@@ -46,6 +26,6 @@ public IgnoreNamePrefixAttribute(bool ignoreEntireMethod = false)
IgnoreEntireMethod = ignoreEntireMethod; IgnoreEntireMethod = ignoreEntireMethod;
} }
public bool IgnoreEntireMethod { get; private set; } public bool IgnoreEntireMethod { get; }
} }
} }
\ No newline at end of file
...@@ -19,6 +19,7 @@ public partial interface IRedisAsync ...@@ -19,6 +19,7 @@ public partial interface IRedisAsync
/// <returns>The observed latency.</returns> /// <returns>The observed latency.</returns>
/// <remarks>https://redis.io/commands/ping</remarks> /// <remarks>https://redis.io/commands/ping</remarks>
Task<TimeSpan> PingAsync(CommandFlags flags = CommandFlags.None); Task<TimeSpan> PingAsync(CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Wait for a given asynchronous operation to complete (or timeout), reporting which /// Wait for a given asynchronous operation to complete (or timeout), reporting which
/// </summary> /// </summary>
...@@ -28,14 +29,15 @@ public partial interface IRedisAsync ...@@ -28,14 +29,15 @@ public partial interface IRedisAsync
/// Wait for a given asynchronous operation to complete (or timeout) /// Wait for a given asynchronous operation to complete (or timeout)
/// </summary> /// </summary>
void Wait(Task task); void Wait(Task task);
/// <summary> /// <summary>
/// Wait for a given asynchronous operation to complete (or timeout) /// Wait for a given asynchronous operation to complete (or timeout)
/// </summary> /// </summary>
T Wait<T>(Task<T> task); T Wait<T>(Task<T> task);
/// <summary> /// <summary>
/// Wait for the given asynchronous operations to complete (or timeout) /// Wait for the given asynchronous operations to complete (or timeout)
/// </summary> /// </summary>
void WaitAll(params Task[] tasks); void WaitAll(params Task[] tasks);
} }
} }
namespace StackExchange.Redis
{
/// <summary>
/// Represents a resumable, cursor-based scanning operation
/// </summary>
public interface IScanningCursor
{
/// <summary>
/// Returns the cursor that represents the *active* page of results (not the pending/next page of results as returned by SCAN/HSCAN/ZSCAN/SSCAN)
/// </summary>
long Cursor { get; }
/// <summary>
/// The page size of the current operation
/// </summary>
int PageSize { get; }
/// <summary>
/// The offset into the current page
/// </summary>
int PageOffset { get; }
}
}
\ No newline at end of file
...@@ -74,6 +74,7 @@ public partial interface IServer : IRedis ...@@ -74,6 +74,7 @@ public partial interface IServer : IRedis
/// <returns>the number of clients killed.</returns> /// <returns>the number of clients killed.</returns>
/// <remarks>https://redis.io/commands/client-kill</remarks> /// <remarks>https://redis.io/commands/client-kill</remarks>
long ClientKill(long? id = null, ClientType? clientType = null, EndPoint endpoint = null, bool skipMe = true, CommandFlags flags = CommandFlags.None); long ClientKill(long? id = null, ClientType? clientType = null, EndPoint endpoint = null, bool skipMe = true, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// The CLIENT KILL command closes multiple connections that match the specified filters /// The CLIENT KILL command closes multiple connections that match the specified filters
/// </summary> /// </summary>
...@@ -349,6 +350,7 @@ public partial interface IServer : IRedis ...@@ -349,6 +350,7 @@ public partial interface IServer : IRedis
/// </summary> /// </summary>
/// <remarks>https://redis.io/commands/slaveof</remarks> /// <remarks>https://redis.io/commands/slaveof</remarks>
void SlaveOf(EndPoint master, CommandFlags flags = CommandFlags.None); void SlaveOf(EndPoint master, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// The SLAVEOF command can change the replication settings of a slave on the fly. If a Redis server is already acting as slave, specifying a null master will turn off the replication, turning the Redis server into a MASTER. Specifying a non-null master will make the server a slave of another server listening at the specified hostname and port. /// The SLAVEOF command can change the replication settings of a slave on the fly. If a Redis server is already acting as slave, specifying a null master will turn off the replication, turning the Redis server into a MASTER. Specifying a non-null master will make the server a slave of another server listening at the specified hostname and port.
/// </summary> /// </summary>
...@@ -360,21 +362,25 @@ public partial interface IServer : IRedis ...@@ -360,21 +362,25 @@ public partial interface IServer : IRedis
/// </summary> /// </summary>
/// <remarks>https://redis.io/commands/slowlog</remarks> /// <remarks>https://redis.io/commands/slowlog</remarks>
CommandTrace[] SlowlogGet(int count = 0, CommandFlags flags = CommandFlags.None); CommandTrace[] SlowlogGet(int count = 0, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// To read the slow log the SLOWLOG GET command is used, that returns every entry in the slow log. It is possible to return only the N most recent entries passing an additional argument to the command (for instance SLOWLOG GET 10). /// To read the slow log the SLOWLOG GET command is used, that returns every entry in the slow log. It is possible to return only the N most recent entries passing an additional argument to the command (for instance SLOWLOG GET 10).
/// </summary> /// </summary>
/// <remarks>https://redis.io/commands/slowlog</remarks> /// <remarks>https://redis.io/commands/slowlog</remarks>
Task<CommandTrace[]> SlowlogGetAsync(int count = 0, CommandFlags flags = CommandFlags.None); Task<CommandTrace[]> SlowlogGetAsync(int count = 0, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// You can reset the slow log using the SLOWLOG RESET command. Once deleted the information is lost forever. /// You can reset the slow log using the SLOWLOG RESET command. Once deleted the information is lost forever.
/// </summary> /// </summary>
/// <remarks>https://redis.io/commands/slowlog</remarks> /// <remarks>https://redis.io/commands/slowlog</remarks>
void SlowlogReset(CommandFlags flags = CommandFlags.None); void SlowlogReset(CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// You can reset the slow log using the SLOWLOG RESET command. Once deleted the information is lost forever. /// You can reset the slow log using the SLOWLOG RESET command. Once deleted the information is lost forever.
/// </summary> /// </summary>
/// <remarks>https://redis.io/commands/slowlog</remarks> /// <remarks>https://redis.io/commands/slowlog</remarks>
Task SlowlogResetAsync(CommandFlags flags = CommandFlags.None); Task SlowlogResetAsync(CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Lists the currently active channels. An active channel is a Pub/Sub channel with one ore more subscribers (not including clients subscribed to patterns). /// Lists the currently active channels. An active channel is a Pub/Sub channel with one ore more subscribers (not including clients subscribed to patterns).
/// </summary> /// </summary>
...@@ -421,6 +427,7 @@ public partial interface IServer : IRedis ...@@ -421,6 +427,7 @@ public partial interface IServer : IRedis
/// <returns>The server's current time.</returns> /// <returns>The server's current time.</returns>
/// <remarks>https://redis.io/commands/time</remarks> /// <remarks>https://redis.io/commands/time</remarks>
DateTime Time(CommandFlags flags = CommandFlags.None); DateTime Time(CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// The TIME command returns the current server time. /// The TIME command returns the current server time.
/// </summary> /// </summary>
...@@ -523,7 +530,4 @@ public partial interface IServer : IRedis ...@@ -523,7 +530,4 @@ public partial interface IServer : IRedis
#endregion #endregion
} }
} }
\ No newline at end of file
...@@ -9,7 +9,6 @@ namespace StackExchange.Redis ...@@ -9,7 +9,6 @@ namespace StackExchange.Redis
/// </summary> /// </summary>
public interface ISubscriber : IRedis public interface ISubscriber : IRedis
{ {
/// <summary> /// <summary>
/// Inidicate exactly which redis server we are talking to /// Inidicate exactly which redis server we are talking to
/// </summary> /// </summary>
...@@ -36,12 +35,14 @@ public interface ISubscriber : IRedis ...@@ -36,12 +35,14 @@ public interface ISubscriber : IRedis
/// <returns>the number of clients that received the message.</returns> /// <returns>the number of clients that received the message.</returns>
/// <remarks>https://redis.io/commands/publish</remarks> /// <remarks>https://redis.io/commands/publish</remarks>
long Publish(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None); long Publish(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Posts a message to the given channel. /// Posts a message to the given channel.
/// </summary> /// </summary>
/// <returns>the number of clients that received the message.</returns> /// <returns>the number of clients that received the message.</returns>
/// <remarks>https://redis.io/commands/publish</remarks> /// <remarks>https://redis.io/commands/publish</remarks>
Task<long> PublishAsync(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None); Task<long> PublishAsync(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None);
/// <summary> /// <summary>
/// Subscribe to perform some operation when a change to the preferred/active node is broadcast. /// Subscribe to perform some operation when a change to the preferred/active node is broadcast.
/// </summary> /// </summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment