Commit 21f0f32c authored by Marc Gravell's avatar Marc Gravell

implement varadic EXISTS (#502)

parent fa4d7d09
......@@ -461,6 +461,15 @@ public interface IDatabase : IRedis, IDatabaseAsync
/// <remarks>https://redis.io/commands/exists</remarks>
bool KeyExists(RedisKey key, CommandFlags flags = CommandFlags.None);
/// <summary>
/// Indicates how many of the supplied keys exists.
/// </summary>
/// <param name="keys">The keys to check.</param>
/// <param name="flags">The flags to use for this operation.</param>
/// <returns>The number of keys that existed.</returns>
/// <remarks>https://redis.io/commands/exists</remarks>
long KeyExists(RedisKey[] keys, CommandFlags flags = CommandFlags.None);
/// <summary>
/// Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key with an associated timeout is said to be volatile in Redis terminology.
/// </summary>
......
......@@ -424,6 +424,15 @@ public interface IDatabaseAsync : IRedisAsync
/// <remarks>https://redis.io/commands/exists</remarks>
Task<bool> KeyExistsAsync(RedisKey key, CommandFlags flags = CommandFlags.None);
/// <summary>
/// Indicates how many of the supplied keys exists.
/// </summary>
/// <param name="keys">The keys to check.</param>
/// <param name="flags">The flags to use for this operation.</param>
/// <returns>The number of keys that existed.</returns>
/// <remarks>https://redis.io/commands/exists</remarks>
Task<long> KeyExistsAsync(RedisKey[] keys, CommandFlags flags = CommandFlags.None);
/// <summary>
/// Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key with an associated timeout is said to be volatile in Redis terminology.
/// </summary>
......
......@@ -211,6 +211,10 @@ public bool KeyExists(RedisKey key, CommandFlags flags = CommandFlags.None)
{
return Inner.KeyExists(ToInner(key), flags);
}
public long KeyExists(RedisKey[] keys, CommandFlags flags = CommandFlags.None)
{
return Inner.KeyExists(ToInner(keys), flags);
}
public bool KeyExpire(RedisKey key, DateTime? expiry, CommandFlags flags = CommandFlags.None)
{
......
......@@ -193,6 +193,11 @@ public Task<bool> KeyExistsAsync(RedisKey key, CommandFlags flags = CommandFlags
return Inner.KeyExistsAsync(ToInner(key), flags);
}
public Task<long> KeyExistsAsync(RedisKey[] keys, CommandFlags flags = CommandFlags.None)
{
return Inner.KeyExistsAsync(ToInner(keys), flags);
}
public Task<bool> KeyExpireAsync(RedisKey key, DateTime? expiry, CommandFlags flags = CommandFlags.None)
{
return Inner.KeyExpireAsync(ToInner(key), expiry, flags);
......
......@@ -606,12 +606,24 @@ public bool KeyExists(RedisKey key, CommandFlags flags = CommandFlags.None)
return ExecuteSync(msg, ResultProcessor.Boolean);
}
public long KeyExists(RedisKey[] keys, CommandFlags flags = CommandFlags.None)
{
var msg = Message.Create(Database, flags, RedisCommand.EXISTS, keys);
return ExecuteSync(msg, ResultProcessor.Int64);
}
public Task<bool> KeyExistsAsync(RedisKey key, CommandFlags flags = CommandFlags.None)
{
var msg = Message.Create(Database, flags, RedisCommand.EXISTS, key);
return ExecuteAsync(msg, ResultProcessor.Boolean);
}
public Task<long> KeyExistsAsync(RedisKey[] keys, CommandFlags flags = CommandFlags.None)
{
var msg = Message.Create(Database, flags, RedisCommand.EXISTS, keys);
return ExecuteAsync(msg, ResultProcessor.Int64);
}
public bool KeyExpire(RedisKey key, TimeSpan? expiry, CommandFlags flags = CommandFlags.None)
{
var msg = GetExpiryMessage(key, flags, expiry, out ServerEndPoint server);
......
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