.netcore使用Redis

using Fast.NetCore.Web.Interface;
using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Fast.NetCore.Web.Helper
{
  public class RedisServiceHelp : IRedisService
  {
    private string _redisConnection { get; set; }

    public RedisServiceHelp()
    {
      _redisConnection = "127.0.0.1:6379,password=,allowadmin=true,ConnectTimeout=65535,syncTimeout=65535";
    }
    public dynamic GetRedisStringValue(string key)
    {
      dynamic ret = null;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          var newobj = db.StringGet(key, CommandFlags.None);
          ret = JsonConvert.DeserializeObject<dynamic>(newobj);

        }
      }
      catch (Exception ex)
      {
        ret = null;
      }
      return ret;
    }

    public dynamic GetRedisValue(string key)
    {
      dynamic ret = null;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          var newobj = db.StringGet(key, CommandFlags.None);
          ret = (dynamic)(newobj);
        }

      }
      catch (Exception ex)
      {
        ret = null;
      }
      return ret;
    }

    public bool RemoveRedisValue(string key)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          ret = db.KeyDelete(key);
        }
      }
      catch (Exception ex)
      {

      }
      return ret;
    }

    public bool SetRedisStringValue(string key, string value, TimeSpan time)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          ret = db.StringSet(key, value, time);
        }
      }
      catch (Exception ex)
      {

      }
      return ret;
    }

    public bool SetRedisValue(dynamic key, dynamic value)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          ret = db.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value));
        }

      }
      catch (Exception ex)
      {

      }
      return ret;
    }

    public bool SetRedisValue(dynamic key, dynamic value, TimeSpan time)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase();
          ret = db.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value), time);
        }

      }
      catch (Exception ex)
      {

      }
      return ret;
    }


    public bool SetRedisStringValueToSelectDb(string key, string value, int dbNumber = -1)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase(dbNumber);
          ret = db.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value));
        }
      }
      catch (Exception)
      {

        throw;
      }
      return ret;
    }

    public bool SetRedisStringValueTimeSpanToSelectDb(string key, string value, TimeSpan time, int dbNumber = -1)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase(dbNumber);
          ret = db.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value), time);
        }
      }
      catch (Exception)
      {

        throw;
      }
      return ret;
    }

    public dynamic GetRedisValueSelectDb(string key, int dbNumber = -1)
    {
      dynamic ret = null;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase(dbNumber);
          var newobj = db.StringGet(key, CommandFlags.None);
          ret = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(newobj);
        }
      }
      catch (Exception)
      {
        ret = null;
      }
      return ret;
    }

    public bool DeleteRedisValueSelectDb(string key, int dbNumber = -1)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase(dbNumber);
          ret = db.KeyDelete(key);
        }

      }
      catch (Exception)
      {
        ret = false;
      }
      return ret;
    }

    public bool EditRedisStringValueSelectDb(string key, string value, int dbNumber = -1)
    {
      var ret = false;
      try
      {
        using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(_redisConnection))
        {
          IDatabase db = redis.GetDatabase(dbNumber);
          ret = db.StringSet(key, Newtonsoft.Json.JsonConvert.SerializeObject(value));
        }
      }
      catch (Exception)
      {

        throw;
      }
      return ret;
    }
  }

}

 

posted @ 2021-10-22 16:47  亦承  阅读(700)  评论(0)    收藏  举报