csredis封装_.NETcore使用CSRedisCore操作Redis

因为Servicestack.Redies免费每天只能调用6000次,所以找了个免费的能在.NETcore使用的插件CSRedisCore,封装了一下。

redies订阅模式的调用:RedisCoreHelper.Sub(“quote”, action);

public void action(string message)

{

if (!message.IsNullOrEmpty() && !"null".Equals(message))

{

//dosomething

}

else

{

//Thread.Sleep(200);

}

}

封装如下:

internal class RedisConfigManager

{

///

/// 获取配置

///

///

public static RedisConfig GetConfig()

{

var path = WorkPath.CurrentDirectory + "\\redis.config.json";

Log.Info("path:"+ path);

var json = FileManager.GetTextFromPath(path);

if (json.IsNullOrEmpty())

return new RedisConfig();

var config = JsonConvert.Deserialize(json);

return config;

}

}

namespace LT.Cache

{

public class RedisCoreHelper

{

static CSRedisClient redisManger = null;

static CSRedisClient GetClient()

{

return redisManger;

}

static RedisCoreHelper()

{

var redisconfig = RedisConfigManager.GetConfig();

redisManger = new CSRedisClient(redisconfig.CoreRedisServer); //Redis的连接字符串

}

///

/// TradeManageMessage 和 TradeManageMessage:MQ队列

///

///

public static bool EnQeenTradeManageMessage(string value)

{

try

{

Log.Info("yinzhou--EnQeenTradeManageMessage:" + value);

//从头部插入

GetClient().LPush("TradeManageMessage", value);

GetClient().LPush("TradeManageMessage:MQ", value);

return true;

}

catch (Exception e)

{

Log.Error($"EnQeenTradeManageMessage:key=TradeManageMessage:MQ,value={value}", e);

return false;

}

}

///

/// TradeManageMessage 和 TradeManageMessage:MQ队列

///

///

public static bool EnQeenTradeManageMessage(T value)

{

try

{

//从头部插入

GetClient().LPush("TradeManageMessage", value);

GetClient().LPush("TradeManageMessage:MQ", value);

return true;

}

catch (Exception e)

{

Log.Error($"EnQeenTradeManageMessage:key=TradeManageMessage:MQ,value={value}", e);

return false;

}

}

public static bool EnQueen(string key, string value)

{

try

{

//从头部插入

GetClient().LPush(key, value);

return true;

}

catch (Exception e)

{

Log.Error($"EnQueen:key={key},value={value}", e);

return false;

}

}

public static string DeQueen(string key)

{

string result = "";

try

{

//从尾部取值

result = GetClient().RPop(key);

return result;

}

catch (Exception e)

{

Log.Error($"DeQueen:key={key}", e);

return result;

}

}

//redis订阅模式

public static void Sub(string key,Action action)

{

GetClient().Subscribe((key, msg => action(msg.Body)));

}

public static string[] DeQueenAll(string key)

{

string[] result = { };

try

{

long len = GetClient().LLen(key);

//取出指定数量数据

result = GetClient().LRange(key,0, len-1);

//删除指定数据

bool res=GetClient().LTrim(key, len, -1);

return result;

}

catch (Exception e)

{

Log.Error($"DeQueen:key={key}", e);

return result;

}

}

public static bool EnQueen(string key, T value)

{

try

{

//从头部插入

long len= GetClient().LPush(key, value);

if(len>0)

return true;

else

return false;

}

catch (Exception e)

{

Log.Error($"EnQueenObj:key={key},value={value}", e);

return false;

}

}

public static T DeQueen(string key)

{

T result=default(T);

try

{

//从尾部取值

result = GetClient().RPop(key);

return result;

}

catch (Exception e)

{

Log.Error($"DeQueen:key={key}", e);

return result;

}

}

///

/// 设置hash值

///

///

///

///

///

public static bool SetHash(string key, string field,string value)

{

try

{

GetClient().HSet(key, field, value);

return true;

}

catch (Exception e)

{

Log.Error($"SetHash:key={key},value={value}", e);

return false;

}

}

///

/// 根据表名,键名,获取hash值

///

/// 表名

/// 键名

///

public static string GetHash(string key,string field)

{

string result = "";

try

{

result = GetClient().HGet(key,field);

return result;

}

catch (Exception e)

{

Log.Error($"GetHash:key={key}", e);

return result;

}

}

///

/// 获取指定key中所有字段

///

///

///

public static Dictionary GetHashAll(string key)

{

try

{

var result = GetClient().HGetAll(key);

return result;

}

catch (Exception e)

{

Log.Error($"GetHash:key={key}", e);

return new Dictionary();

}

}

///

/// 根据表名,键名,删除hash值

///

/// 表名

/// 键名

///

public static long DeleteHash(string key, string field)

{

long result = 0;

try

{

result = GetClient().HDel(key, field);

return result;

}

catch (Exception e)

{

Log.Error($"GetHash:key={key}", e);

return result;

}

}

//private object deleteCache( Method method, Object[] args)

//{

// object flag = false;

// String fieldkey = parseKey(method, args);

// try

// {

// if (fieldkey.equals(""))

// {

// cacheClient.del(cache.key());

// }

// else

// {

// cacheClient.hdel(cache.key(), fieldkey);

// }

// flag = true;

// }

// catch (Exception e)

// {

// //System.out.println(e.getMessage());

// flag = false;

// }

// return flag;

//}

/**

* 获取值field

* @param key

* @param method

* @param args

* @return

* @throws Exception

*/

// public string parseKey(Method method, Object[] args)

// {

// string fieldKey = "";

// for (int i = 0; i < method.getParameters().length; i++)

// {

// Parameter p = method.getParameters()[i];

// FieldAnnotation f = p.getAnnotation(FieldAnnotation.class);

//if(f!=null) {

//fieldKey+=args[i].toString()+":";

//}else {

//FieldOnlyKeyAnnotation fo = p.getAnnotation(FieldOnlyKeyAnnotation.class);

//if(fo != null) {

//fieldKey+=args[i].toString();

//}

//}

//}

//return fieldKey;

// }

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值