csredis封装_封装redis方法

public static classRedisHelper

{public static readonlyConnectionMultiplexer _connectin;///

///数据库id///

public static int DbNum { get; set; }///

///连接方式///

public static string ConnectionString { get; set; }staticRedisHelper()

{

DbNum= -1;

ConnectionString= null;

_connectin= string.IsNullOrEmpty(ConnectionString) ?RedisConnectionHelper.Instance :

RedisConnectionHelper.GetConnectionMultiplexer(ConnectionString);

}///

///获取db///

public staticIDatabase Db

{get{return_connectin.GetDatabase(DbNum);

}

}///

///执行委托///

///

///

///

public static T Do(Funcfunc)

{returnfunc(Db);

}#region string

///

///保存string///

///

///

///

public static bool StringSet(string key, string value, TimeSpan? expiry = null)

{return Do(d =>d.StringSet(key, value,expiry));

}///

///异步保存///

///

///

///

///

public static async Task StringSetAsync(string key, string value, TimeSpan? expiry = null)

{return await Do(d =>d.StringSetAsync(key, value, expiry));

}///

///获取值///

///

///

public static string StringGet(stringkey)

{return Do(d =>d.StringGet(key));

}///

///获取值///

///

///

public static async Task StringGetAsync(stringkey)

{return await Do(d =>d.StringGetAsync(key));

}///

///删除键///

///

public static bool KeyDelete(stringkey)

{return Do(d =>d.KeyDelete(key));

}///

///删除键///

///

public static async Task KeyDeleteAsync(stringkey)

{return await Do(d =>d.KeyDeleteAsync(key));

}///

///set///

///

///

///

///

///

public static bool StringSet(string key, T value, TimeSpan? expiry = null)

{string json =Serialize(value);return Do(d =>d.StringSet(key, json, expiry));

}///

///set///

///

///

///

///

///

public static async Task StringSetAsync(string key, T value, TimeSpan? expiry = null)

{string json =Serialize(value);return await Do(d =>d.StringSetAsync(key, json, expiry));

}///

///get///

///

///

///

///

///

public static T StringGet(stringkey)

{string json = Do(d =>d.StringGet(key)).ToString();return Deserialize(json);

}///

///get///

///

///

///

///

///

public static async Task StringGetAsync(stringkey)

{string json = await Do(d =>d.StringGetAsync(key));return Deserialize(json);

}#endregion

///

///序列化///

///

///

///

private static string Serialize(T value)

{var result = value is string ?value.ToString() : JsonConvert.SerializeObject(value,newJsonSerializerSettings

{

DateFormatString= "yyyy-MM-dd hh:mm:ss"});returnresult;

}///

///解析///

///

///

///

private static T Deserialize(stringjson)

{if (string.IsNullOrEmpty(json)) return default;return JsonConvert.DeserializeObject(json);

}///

///解析redis缓存的集合///

///

///

///

private static List DeserializeList(RedisValue[] values)

{return values.Select(s => Deserialize(s)).ToList();

}#region List

///

///保存list 集合///

///

///

///

public static void SetList(string key, Listvalue)

{if (value.Count > 0)

{var values = value.Select(s =>(RedisValue)Serialize(s)).ToArray();

Do(d=>d.ListRightPush(key, values));

}

}///

///保存list 集合///

///

///

///

public static async Task SetListAsync(string key, Listvalue)

{if (value.Count > 0)

{var values = value.Select(s =>(RedisValue)Serialize(s)).ToArray();await Do(d =>d.ListRightPushAsync(key, values));

}

}///

///获取list 集合///

///

///

///

public static List GetList(stringkey)

{var values = Do(d =>d.ListRange(key));if(values.IsNullOrEmpty())

{return values.Select(s => Deserialize(s)).ToList();

}return default;

}///

///获取list 集合///

///

///

///

public static async Task> GetListAsync(stringkey)

{var values = await Do(d =>d.ListRangeAsync(key));if(values.IsNullOrEmpty())

{return values.Select(s => Deserialize(s)).ToList();

}return default;

}///

///删除并返回集合的第一个元素///ListLeftPop///

///

public static T RemoveFirst(stringkey)

{var json = Do(d =>d.ListLeftPop(key));return Deserialize(json);

}///

///删除并返回集合的第一个元素///ListLeftPop///

///

public static async Task RemoveFirstAsync(stringkey)

{var json = await Do(d =>d.ListLeftPopAsync(key));return Deserialize(json);

}///

///删除并返回集合的最后一个元素///

///

///

///

public static T RemoveLast(stringkey)

{return Deserialize(Do(d =>d.ListRightPop(key)));

}///

///删除并返回集合的最后一个元素///

///

///

///

public static async Task RemoveLastAsync(stringkey)

{return Deserialize(await Do(d =>d.ListRightPopAsync(key)));

}///

///根据索引获取集合 (默认所有)///

///

///

///

///

///

public static List ListRange(string key, long start = 0, long stop = -1)

{var json = Do(d =>d.ListRange(key, start, stop));return DeserializeList(json);

}///

///根据索引获取集合 (默认所有)///

///

///

///

///

///

public static async Task> ListRangeAsync(string key, long start = 0, long stop = -1)

{var json = await Do(d =>d.ListRangeAsync(key, start, stop));return DeserializeList(json);

}///

///根据元素删除///

///

///

///

/// 返回删除元素数量

public static int RemoveAt(stringkey,T value)

{return (int)Do(d =>d.ListRemove(key, Serialize(value)));

}///

///根据元素删除///

///

///

///

/// 返回删除元素数量

public static async Task RemoveAtAsync(stringkey, T value)

{return (int)await Do(d =>d.ListRemoveAsync(key, Serialize(value)));

}///

///向集合开头添加一个元素///

///

///

///

public static void AddFirst(stringkey, T value)

{

Do(d=>d.ListLeftPush(key, Serialize(value)));

}///

///向集合开头添加一个元素///

///

///

///

public static async Task AddFirstAsync(stringkey, T value)

{await Do(d =>d.ListLeftPushAsync(key, Serialize(value)));

}///

///向集合末尾添加一个元素///

///

///

///

public static void AddLast(stringkey, T value)

{

Do(d=>d.ListRightPush(key, Serialize(value)));

}///

///向集合末尾添加一个元素///

///

///

///

public static async Task AddLastAsync(stringkey, T value)

{await Do(d =>d.ListRightPushAsync(key, Serialize(value)));

}///

///判断对象是否存在///

///

///

///

///

public static bool Contains(stringkey, T value)

{//数量

var length =Count(key);//格式话对象

var json =Serialize(value);for (int i = 0; i < length; i++)

{if (Do(d =>d.ListGetByIndex(key, i).ToString().Equals(json)))

{return true;

}

}return false;

}///

///判断对象是否存在///

///

///

///

///

public static async Task ContainsAsync(stringkey, T value)

{//数量

var length = awaitCountAsync(key);//格式话对象

var json =Serialize(value);for (int i = 0; i < length; i++)

{var item = await Do(d =>d.ListGetByIndexAsync(key, i));if(item.ToString().Equals(json))

{return true;

}

}return false;

}///

///根据索引获取对象///ListGetByIndex///

///

///

///

///

public static T Get(string key, intindex)

{string json = Do(d =>d.ListGetByIndex(key, index));return Deserialize(json);

}///

///根据索引获取对象///ListGetByIndex///

///

///

///

///

public static async Task GetAsync(string key, intindex)

{string json = await Do(d =>d.ListGetByIndexAsync(key, index));return Deserialize(json);

}///

///根据对象获取索引///

///

///

///

///

public static int IndexOf(stringkey, T value)

{//数量

var length =Count(key);//格式话对象

var json =Serialize(value);for (int i = 0; i < length; i++)

{if ( Do(d =>d.ListGetByIndex(key, i).ToString().Equals(json)))

{returni;

}

}return -1;

}///

///根据对象获取索引///

///

///

///

///

public static async Task IndexOfAsync(stringkey, T value)

{//数量

var length = awaitCountAsync(key);//格式话对象

var json =Serialize(value);for (int i = 0; i < length; i++)

{var item = await Do(d =>d.ListGetByIndexAsync(key, i));if( item.ToString().Equals(json))

{returni;

}

}return -1;

}///

///获取list的数量///

///

///

public static int Count(stringkey)

{return (int)Do(d =>d.ListLength(key));

}///

///获取list的数量///

///

///

public static async Task CountAsync(stringkey)

{return (int)await Do(d =>d.ListLengthAsync(key));

}#endregion}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值