栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis读写帮助类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis读写帮助类

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);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号