You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.0 KiB
C#
105 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using ServiceStack.Text;
|
|
|
|
namespace BP.Difference.Redis
|
|
{
|
|
public class RedisUtils: RedisOperatorBase
|
|
{
|
|
public RedisUtils() : base() { }
|
|
public bool Set<T>(string key, T t)
|
|
{
|
|
return Redis.Set(key, t);
|
|
}
|
|
public bool Set(string key, String value)
|
|
{
|
|
return Redis.Set(key, value);
|
|
}
|
|
|
|
public T Get<T>(string key)
|
|
{
|
|
return Redis.Get<T>(key);
|
|
}
|
|
public string Get(string key)
|
|
{
|
|
Object obj = Redis.Get<Object>(key);
|
|
if (obj == null) return null;
|
|
return obj.ToString();
|
|
}
|
|
public bool del(string key)
|
|
{
|
|
return Redis.Remove(key);
|
|
}
|
|
/// <summary>
|
|
/// 判断某个数据是否已经被缓存
|
|
/// </summary>
|
|
public bool ExistInHash<T>(string hashId, string key)
|
|
{
|
|
return Redis.HashContainsEntry(hashId, key);
|
|
}
|
|
/// <summary>
|
|
/// 存储数据到hash表
|
|
/// </summary>
|
|
public bool SetInHash<T>(string hashId, string key, T t)
|
|
{
|
|
var value = JsonSerializer.SerializeToString<T>(t);
|
|
return Redis.SetEntryInHash(hashId, key, value);
|
|
}
|
|
public bool SetInHash(string hashId, string key, string value)
|
|
{
|
|
return Redis.SetEntryInHash(hashId, key, value);
|
|
}
|
|
/// <summary>
|
|
/// 移除hash中的某值
|
|
/// </summary>
|
|
public bool RemoveHash(string hashId, string key)
|
|
{
|
|
return Redis.RemoveEntryFromHash(hashId, key);
|
|
}
|
|
/// <summary>
|
|
/// 移除整个hash
|
|
/// </summary>
|
|
public bool RemoveHash(string key)
|
|
{
|
|
return Redis.Remove(key);
|
|
}
|
|
/// <summary>
|
|
/// 从hash表获取数据
|
|
/// </summary>
|
|
public T GetFromHash<T>(string hashId, string key)
|
|
{
|
|
string value = Redis.GetValueFromHash(hashId, key);
|
|
return JsonSerializer.DeserializeFromString<T>(value);
|
|
}
|
|
public String GetFromHash(string hashId, string key)
|
|
{
|
|
return Redis.GetValueFromHash(hashId, key);
|
|
}
|
|
/// <summary>
|
|
/// 获取整个hash的数据
|
|
/// </summary>
|
|
public List<T> GetAllHashValues<T>(string hashId)
|
|
{
|
|
var result = new List<T>();
|
|
var list = Redis.GetHashValues(hashId);
|
|
if (list != null && list.Count > 0)
|
|
{
|
|
list.ForEach(x =>
|
|
{
|
|
var value = JsonSerializer.DeserializeFromString<T>(x);
|
|
result.Add(value);
|
|
});
|
|
}
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 设置缓存过期
|
|
/// </summary>
|
|
public void SetExpire(string key, DateTime datetime)
|
|
{
|
|
Redis.ExpireEntryAt(key, datetime);
|
|
}
|
|
|
|
}
|
|
}
|