概念
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)
命令查看
http://www.redis.cn/commands.html#generic
代码案列(常见API)
using (RedisClient client = new RedisClient("127.0.0.1", 6379))
{
#region list 添加数据 key 一致
var key = "listid";
//var user1 = new User() { id = "1", name = "李四" };
//var user2 = new User() { id = "2", name = "张三" };
//client.AddItemToList(key, JsonConvert.SerializeObject(user1));
//client.AddItemToList(key, JsonConvert.SerializeObject(user2));
//client.AddItemToList(key, "1");
//client.AddItemToList(key, "2");
#endregion
#region 追加数据
//var user3 = new User() { id = "3", name = "王二麻" };
//client.PushItemToList(key, JsonConvert.SerializeObject(user3));
#endregion
#region 设置过期时间
//var user4 = new User() { id = "3", name = "王大麻" };
//client.PushItemToList(key, JsonConvert.SerializeObject(user4));
//client.ExpireEntryAt(key, DateTime.Now.AddSeconds(20));//20秒之后过期
#endregion
#region 插队添加 后执行的在上面 在最原始的上面添加,后执行的添加的在最上面
//var gaunyu = new User() { id = "3", name = "王二麻" };
向右追加就是插队
//client.PrependItemToList(key, JsonConvert.SerializeObject(gaunyu));
//Console.WriteLine("ok");
//var caomegndeng = new User() { id = "4", name = "王大麻" };
//client.PrependItemToList(key, JsonConvert.SerializeObject(caomegndeng));
#endregion
#region 通过key 获取全部
//var list= client.GetAllItemsFromList(key);
#endregion
#region 通过key 获取指定下标的数据集合
//var list = client.GetRangeFromList(key,1,3);//下标范围
//var list = client.GetItemFromList(key,0); //指定下标
#endregion
#region 获取list长度
//var count = client.LLen(key); //获取list长度
#endregion
#region
client.Del(key);
#endregion
使用场景
List的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis 内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。另外,可以利用 lrange 命令,做基于 Redis 的分页功能,性能极佳,用户体验好。