C#操作Redis List 列表


/// <summary>
        /// Redis 列表
        /// </summary>
        public static void Redis_List()
        {
            RedisClient client = new RedisClient("127.0.0.1", 6379);
            //清空數據庫緩存,慎用
            client.FlushAll();

            /*
             * list是一個鏈表結構,主要功能是push,pop,獲取一個范圍的所有的值等,操作中key理解為鏈表名字。
             * Redis的list類型其實就是一個每個子元素都是string類型的雙向鏈表。我們可以通過push,pop操作從鏈表的頭部或者尾部添加刪除元素,
             * 這樣list既可以作為棧,又可以作為隊列。Redis list的實現為一個雙向鏈表,即可以支持反向查找和遍歷,更方便操作,不過帶來了部分額外的內存開銷,
             * Redis內部的很多實現,包括發送緩沖隊列等也都是用的這個數據結構
             */

            #region 隊列操作


            client.EnqueueItemOnList("QueueList", "1.張三");  //入隊
            client.EnqueueItemOnList("QueueList", "2.張四");
            client.EnqueueItemOnList("QueueList", "3.王五");
            client.EnqueueItemOnList("QueueList", "4.王麻子");
            int q = client.GetListCount("QueueList");
            for (int i = 0; i < q; i++)
            {
                //出隊后原有隊列數據移除
                //出隊(隊列先進先出)
                Console.WriteLine("QueueList出隊值:{0}", client.DequeueItemFromList("QueueList"));
            }
            #endregion
            #region 棧操作

            client.PushItemToList("StackList", "1.張三");  //入棧
            client.PushItemToList("StackList", "2.張四");
            client.PushItemToList("StackList", "3.王五");
            client.PushItemToList("StackList", "4.王麻子");
            int p = client.GetListCount("StackList");
            for (int i = 0; i < p; i++)
            {
                //出棧后原有隊列數據移除
                //出棧(棧先進后出)
                Console.WriteLine("StackList出棧值:{0}", client.PopItemFromList("StackList"));
            }
            #endregion

        }

 

 

https://www.cnblogs.com/happygx/p/8416613.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM