/// <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