redis 添加部分方法
parent
aa9a1597eb
commit
7c9891bd1d
|
|
@ -1,7 +1,4 @@
|
|||
using System;
|
||||
using Enyim.Caching;
|
||||
using Enyim.Caching.Memcached;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Extensions.Options;
|
||||
using StackExchange.Redis;
|
||||
|
||||
namespace Infrastructure.Cache
|
||||
|
|
@ -59,5 +56,116 @@ namespace Infrastructure.Cache
|
|||
{
|
||||
return func(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// HSET - 将哈希表 key 中的字段 field 的值设为 value。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="field">字段</param>
|
||||
/// <param name="value">值</param>
|
||||
public void HashSet<T>(string key, string field, T value)
|
||||
{
|
||||
iDatabase.HashSet(new RedisKey(key),
|
||||
new[] { new HashEntry(new RedisValue(field), new RedisValue(value.ToString() ?? string.Empty)) });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// HGET - 获取哈希表中的指定字段的值。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="field">字段</param>
|
||||
/// <returns>字段对应的值</returns>
|
||||
public object HashGet(string key, string field)
|
||||
{
|
||||
return iDatabase.HashGet(key, field);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// HEXISTS - 查看哈希表中是否存在指定字段。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="field">字段</param>
|
||||
/// <returns>是否存在</returns>
|
||||
public bool HashCheck(string key, string field)
|
||||
{
|
||||
return iDatabase.HashExists(key, field);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// HDEL - 删除一个或多个哈希表字段。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="fields">要删除的字段数组</param>
|
||||
/// <returns>移除数量</returns>
|
||||
public long HashDel(string key, string[] fields)
|
||||
{
|
||||
var redisFields = fields.Select(f => new RedisValue(f)).ToArray();
|
||||
return iDatabase.HashDelete(new RedisKey(key), redisFields);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// HLEN - 获取哈希表中字段的数量。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <returns>字段数量</returns>
|
||||
public long HashLen(string key)
|
||||
{
|
||||
return iDatabase.HashLength(key);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// EXPIRE - 为键设置过期时间(秒)。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <param name="timeout">过期时间(秒)</param>
|
||||
/// <returns>是否设置成功</returns>
|
||||
public bool ExpireKey(string key, long timeout)
|
||||
{
|
||||
return iDatabase.KeyExpire(key, TimeSpan.FromSeconds(timeout));
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// GET - 获取键对应的值。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <returns>键对应的值</returns>
|
||||
public object Get(string key)
|
||||
{
|
||||
return iDatabase.StringGet(key);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// EXISTS - 判断键是否存在。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <returns>是否存在</returns>
|
||||
public bool CheckExist(string key)
|
||||
{
|
||||
return iDatabase.KeyExists(key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DEL - 删除键。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <returns>是否删除成功</returns>
|
||||
public bool Del(string key)
|
||||
{
|
||||
return CheckExist(key) && iDatabase.KeyDelete(key);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// LLEN - 获取列表的长度。
|
||||
/// </summary>
|
||||
/// <param name="key">键</param>
|
||||
/// <returns>列表长度</returns>
|
||||
public long ListLen(string key)
|
||||
{
|
||||
return iDatabase.ListLength(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue