1:连接字符串写入配置文件
//将连接字符串写入配置文件
2:redis连接
//获取配置文件中的字符串连接
private string RedisConnectionStr=ConfigurationManager.AppSettings["RedisConnectionStr"];
private ConnectionMultiplexer redis { get; set; }
private IDatabase db { get; set; }
public RedisHelper()
{
redis = ConnectionMultiplexer.Connect(RedisConnectionStr);
db = redis.GetDatabase();
}
3:字符串相关方法
//将字符串类型的数据存入redis缓存(生存周期默认永不过期)
public bool SetStringValue(string key.string value)
{
return db.StringSet(key,value);
}
//将字符串类型的数据存入redis缓存,可以设置生存周期(以秒为单位)
public bool SetStringKey(string key,string values,int expireMinutes=0)
{
if(expireMinutes>0)//设置过期时间
{
return db.StringSet(key,value,TimeSpan.FromMinutes(expireMinutes));
}
else
{
return db.StringSet(key,value);
}
}
//读取redis中相应key的值
public string GetStringValue(string key)
{
return db.StringGet(key);
}
//将类序列化为字符串存入redis缓存
public bool SetStringKey(string key,T obj,int expireMinutes)
{
string json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
if(expireMinutes>0)
{
return db.StringSet(key,json,TimeSpan.FromMinutes(expireMinutes));
}
else
{
return db.StringSet(key,json);
}
}
//读取redis缓存中传入key的值,并转换为相应的类
public T GetStringKey(string key) where T:class
{
var result=db.StringGet(key);
if(string.IsNullOrEmpty(result))
{
return null;
}
try
{
return Newtonsoft.Json.JsonConvert.DeserializeObject(result);
}
catch
{
return null;
}
}
//删除redis中对应的key
public bool DeleteStringKey(string key)
{
return db.KeyDelete(key);
}
4:哈希相关方法
//保存一个Hash值
public bool SetHashValue(string key,string hashkey,string value)
{
return db.HashSet(key,hashkey,value);
}
//保存一个Hash值
public bool SetHashValue(string key,string hashkey,T t) where T : class
{
var json=Newtonsoft.Json.JsonConvert.SerializeObject(t,new JsonSerializerSettings{ DateFormatString = "yyyy-MM-dd HH:mm:ss"});
return db.HashSet(key,hashkey,json);
}
//批量保存Hash中多个值
public void HashSet(string key,List list,Func getModelId)
{
List listHashEntry=new List();
foreach ( var item in list)
{
string json=Mewtonsoft.Json.JsonConvert.SerializeObject(item);
listHashEntry.Add(new HashEntry(getModeId(item),json));
}
db.HashSet(key,listHashEntry.ToArray());
}
//获取对应key的所有值
public List HashGetValue(string key) where T : class
{
List result=new List();
HashEntry[] arr=db.HashGetAll(Key);
foreach( var item in arr)
{
if(!item.Value.IsNullOrEmpty)
{
result.Add(Newtonsoft.Json.JsonConvert.DeserializeObject(item.Value));
}
}
return result;
}
//获取对应Hash的Key和Value
public Dictionary HashGetAll(string key) where T : class
{
Dictionary myDictionary=new Dictionary();
HashEntry[] arr=db.HashGetAll(key);
foreach(var item in arr)
{
if(!item.Value.IsNullOrEmpty)
{
myDictionary.Add(item.Name,Newtonsoft.Json.JsonConvert.DeserializeObject(item.Value));
}
}
return myDictionary;
}
//获取Hash中的单条记录
public RedisValue GetHashValue(string key,string hashkey)
{
RedisValue result=db.HashGet(key,hashkey);
return result;
}
//获取Hash中的单条记录并转换为对应的类
public T GetHashValue(string key,string hashkey) where T : class
{
RedisValue result=db.HashGet(key,hashkey);
if(string.IsNullOrEmpty(result))
{
result null;
}
T t=Newtonsoft.Json.JsonConvert.DeserializeObject(result);
return T;
}
//删除Hash中的一条记录
public bool DeleteHashValue(string key,string hashkey)
{
return db.HashDelete(key.hashkey);
}
5:List相关方法
//保存list集合到redis缓存中 public void ListSet(string key,List value) { foreach(var single in value) { var s=JsonConvert.SerializeObject(single,new JsonSerializerSettings {DateFormatString = "yyyy-MM-dd HH:mm:ss" }); db.ListRightPush(key,s); } } //获取redis缓存中的list集合 public List ListGet (string key) where T: class { //ListRange返回的是一组字符串对象 //需要逐个反序列化为实体 var vList=db.ListRange(key); List result=new List (); foreach(var item in vList) { var model=JsonConvert.DeserializeObject (item);//反序列化 result.Add(model); } return result; } //删除list集合 public void ListDelete(string key) { db.KeyDelete(key); }



