91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中使用redis的方法

發布時間:2020-07-07 10:38:26 來源:億速云 閱讀:238 作者:清晨 欄目:開發技術

這篇文章主要介紹C#中使用redis的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

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

1、引用 StackExchange.Redis

C#中使用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 雖然也可以做消息隊列,實現也簡單,但弊端同樣明顯,不推薦

//發布
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的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永川市| 龙里县| 宣化县| 武胜县| 班戈县| 喜德县| 五台县| 博客| 芮城县| 宣化县| 新野县| 舟山市| 贵南县| 漳平市| 都兰县| 朔州市| 蕲春县| 和硕县| 图片| 榆树市| 祁东县| 镇雄县| 屏东县| 岫岩| 安康市| 巴青县| 桑植县| 信阳市| 瓦房店市| 福清市| 朝阳县| 方山县| 霍城县| 当雄县| 安溪县| 浑源县| 铜川市| 嵊泗县| 志丹县| 资溪县| 商南县|