1 /// <summary> 2 /// Redis 列表 3 /// </summary> 4 public static void Redis_List() 5 { 6 RedisClient client = new RedisClient("127.0.0.1", 6379); 7 //清空数据库缓存,慎用 8 client.FlushAll(); 9 10 /* 11 * list是一个链表结构,主要功能是push,pop,获取一个范围的所有的值等,操作中key理解为链表名字。 12 * Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素, 13 * 这样list既可以作为栈,又可以作为队列。Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, 14 * Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构 15 */ 16 17 #region 队列操作 18 19 20 client.EnqueueItemOnList("QueueList", "1.张三"); //入队 21 client.EnqueueItemOnList("QueueList", "2.张四"); 22 client.EnqueueItemOnList("QueueList", "3.王五"); 23 client.EnqueueItemOnList("QueueList", "4.王麻子"); 24 int q = client.GetListCount("QueueList"); 25 for (int i = 0; i < q; i++) 26 { 27 //出队后原有队列数据移除 28 //出队(队列先进先出) 29 Console.WriteLine("QueueList出队值:{0}", client.DequeueItemFromList("QueueList")); 30 } 31 #endregion 32 #region 栈操作 33 34 client.PushItemToList("StackList", "1.张三"); //入栈 35 client.PushItemToList("StackList", "2.张四"); 36 client.PushItemToList("StackList", "3.王五"); 37 client.PushItemToList("StackList", "4.王麻子"); 38 int p = client.GetListCount("StackList"); 39 for (int i = 0; i < p; i++) 40 { 41 //出栈后原有队列数据移除 42 //出栈(栈先进后出) 43 Console.WriteLine("StackList出栈值:{0}", client.PopItemFromList("StackList")); 44 } 45 #endregion 46 47 }