欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中如何使用redis

 更新時間:2020年07月06日 15:54:34   作者:邱@cnblogs  
這篇文章主要介紹了C#中如何使用redis,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下

redis 是一個非關系型高性能的key-value數據庫。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區(qū)別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

下面介紹下,在C#中如何使用redis

1、引用 StackExchange.Redis

2、redis 工具類

public class RedisHelper
  {
    private static ConnectionMultiplexer multiplexer { get; set; }
    static RedisHelper()
    {
    }

    public static IDatabase GetDataBase(int dbNums = 1)
    {
      if (multiplexer == null)
        Init();
      return multiplexer.GetDatabase(dbNums);
    }

    public static ConnectionMultiplexer GetMultiplexer()
    {
      if (multiplexer == null)
        Init();

      return multiplexer;
    }
    public static bool IsConnect(string key, IDatabase redisDb, string module, string action)
    {
      if (!redisDb.IsConnected(key))
      {
        LogHelper.Error("current redis is not connect", null, module, action);
        return false;
      }
      return true;
    }

    private static void Init()
    {
      try
      {
        var configString = ConfigurationManager.AppSettings["RedisConfigString"];
        ConfigurationOptions options = ConfigurationOptions.Parse(configString);
        multiplexer = ConnectionMultiplexer.Connect(options);
      }
      catch (Exception ex)
      {
        LogHelper.Error(ex, "RedisHelper", "Static");
      }
    }
  }

3、常用操作

IDatabase _cacheClient = RedisHelper.GetDataBase(4);
//key是否存在
_cacheClient.KeyExists("key")
//設置key-vaule
_cacheClient.StringSet("key", "value");
//設置過期時間
_cacheClient.KeyExpire("key", TimeSpan.FromMinutes(1));
//刪除
_cacheClient.KeyDelete("key");

4、redis 雖然也可以做消息隊列,實現也簡單,但弊端同樣明顯,不推薦

//發(fā)布
ConnectionMultiplexer multiplexer = RedisHelper.GetMultiplexer();
ISubscriber sub = multiplexer.GetSubscriber();
var queue = sub.Publish("channel name", "message");

//訂閱
ConnectionMultiplexer multiplexer = RedisHelper.GetMultiplexer();
ISubscriber sub = multiplexer.GetSubscriber();
sub.Subscribe("channel name", (channel, message) =>
{
  //TODO
});

5、計數器,用于秒殺、搶購控庫存

//取值,不存在則初始為0
long num = _cacheClient.StringIncrement("key", 0)

//判斷,比如和緩存里的商品總庫存比較

//計數增加
_cacheClient.StringIncrement("key", 2)

以上就是C#中如何使用redis的詳細內容,更多關于C#使用redis的資料請關注腳本之家其它相關文章!

相關文章

  • C#實現文件夾的復制和刪除

    C#實現文件夾的復制和刪除

    這篇文章主要為大家詳細介紹了C#實現文件夾的復制和刪除功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用C#和SerialPort類進行實時數據采集與控制

    使用C#和SerialPort類進行實時數據采集與控制

    在很多工業(yè)控制、設備監(jiān)控、傳感器數據采集等應用場景中,上位機通過串口與下位機(如嵌入式設備、PLC、傳感器等)進行實時數據采集與控制,C#提供了System.IO.Ports.SerialPort類,使得串口通信變得簡單高效,本文介紹了如何使用C#和SerialPort類進行實時數據采集與控制
    2025-02-02
  • C#之Socket操作類實例解析

    C#之Socket操作類實例解析

    這篇文章主要介紹了C#的Socket操作類用法,需要的朋友可以參考下
    2014-08-08
  • 在c#中把字符串轉為變量名并獲取變量值的小例子

    在c#中把字符串轉為變量名并獲取變量值的小例子

    這篇文章介紹了在c#中把字符串轉為變量名并獲取變量值的小例子,有需要的朋友可以參考一下
    2013-09-09
  • C#折半插入排序算法實現方法

    C#折半插入排序算法實現方法

    這篇文章主要介紹了C#折半插入排序算法實現方法,實例分析了C#排序的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#生成驗證碼圖片的方法

    C#生成驗證碼圖片的方法

    這篇文章主要為大家詳細介紹了C#生成驗證碼圖片的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 用C#編寫ActiveX控件(三)

    用C#編寫ActiveX控件(三)

    用C#編寫ActiveX控件(三)...
    2007-03-03
  • C#?OpenCV實現形狀匹配的方法詳解

    C#?OpenCV實現形狀匹配的方法詳解

    這篇文章主要為大家詳細介紹了如何利用C#+OpenCV實現形狀匹配的效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-09-09
  • WPF Slider滑動條的顏色修改方法

    WPF Slider滑動條的顏色修改方法

    這篇文章主要介紹了WPF Slider滑動條的顏色修改方法,需要的朋友可以參考下
    2018-08-08
  • C#多線程同步不同實現方式小結

    C#多線程同步不同實現方式小結

    本文主要介紹了C#多線程同步不同實現方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01

最新評論