Redis的List是通过Linked List(链表)来实现的String集合,所以插入数据的速度很快。
但是缺点就是在数据量比较大的时候,访问某个数据的时间可能会很长,但针对这种情况,可以使用Sorted Set。

LPUSH,RPUSH,LRANGE

LPUSH会向List的左侧(头部)添加一个新的元素
而RPUSH会把新的元素添加到List的右侧(尾部)。
LRANGE命令可以按索引区间显示List的一部分,它的个试试LRANGE List-Key start end。
如果想显示整个list的话,这两个索引就可以是0和-1,其中-1就表示最后一个元素。

LPUSH和RPUSH,可以一次添加多个元素

LPOP,RPOP

POP动作有两个效果:一个是获取到元素,另一个是把元素从list中删除。
LPOP就是从左边(头部)POP,
RPOP就是从右边(尾部)POP。

而如果list里面已经没有元素了,就会返回nil

LTRIM

LTRIM命令可以对list进行剪切,其格式为LTRIM list-key start end,返回的就是剪切的部分

BRPOP,BLPOP

BRPOPBLPOP这两个命令与RPOP和LPOP类似,但是当list里没有元素的时候,它们可以几秒钟,如果这期间有新的元素添加到了list里,那么就会停止等待返回该元素,否则就会一直等到设定的时间结束,然后返回null:

例子里面的3 就是等待3秒。
而如果这个参数改为0,那就是永远等待

RPOPLPUSH,BRPOPLPUSH

Rpoplpush 命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

BRPOPLPUSH命令用于从列表中弹出一个值,它推到另一个列表并返回它,或阻塞直到有可用。

自动创建和移除Key

当我们为集合添加元素的时候,如果集合的key不存在,那么Redis会为我们创建一个空的集合,然后再执行插入操作

但要注意的是,不可以为不同类型且key已经存在的集合添加新的数据

C#操作List

    class Program
{
static void Main(string[] args)
{
ConnectionMultiplexer connectionMultiplexer = ConnectionMultiplexer.Connect("120.132.116.153:6379");
IDatabase database = connectionMultiplexer.GetDatabase();
database.KeyDelete("list3");
//LPUSH
database.ListLeftPush("list3", "");
database.ListLeftPush("list3", "");
//RPUSH
database.ListRightPush("list3", new RedisValue[] { "", "", "" });
//LRANGE
var list1 = database.ListRange("list3", , -);
foreach (var item in list1)
{
Console.WriteLine($"{item}");
}
Console.WriteLine("-----------------------------");
//LPOP
Console.WriteLine($"{database.ListLeftPop("list3")}");
//RPOP
Console.WriteLine($"{database.ListRightPop("list3")}");
Console.WriteLine("-----------------------------");
database.ListTrim("list3", , );
//LRANGE
var list2 = database.ListRange("list3", , -);
foreach (var item in list2)
{
Console.WriteLine($"{item}");
}
Console.ReadLine();
}
}

Redis数据类型List的更多相关文章

  1. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  2. redis数据类型及使用场景

    Redis数据类型  String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令:  set,get,decr,incr,mge ...

  3. Redis数据类型介绍

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  4. redis数据类型

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  5. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

  6. Lua 数据类型和 Redis 数据类型之间转换

    当 Lua 通过 call() 或 pcall() 函数执行 Redis 命令的时候,命令的返回值会被转换成 Lua 数据结构. 同样地,当 Lua 脚本在 Redis 内置的解释器里运行时,Lua ...

  7. redis数据类型-散列类型

    Redis数据类型 散列类型 Redis是采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他 ...

  8. redis数据类型-字符串类型

    Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...

  9. redis笔记总结之redis数据类型及常用命令

    三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...

  10. redis介绍、安装、redis持久化、redis数据类型

    1.redis介绍  2.安装管网:https://redis.io/下载:wget -c http://download.redis.io/releases/redis-4.0.11.tar.gz解 ...

随机推荐

  1. Python——Django-urls.py的作用

    一.urls.py的作用是保存路径和函数的对应关系 二.函数返回指定内容 from django.urls import path #引用HTTP协议的代码 from django.shortcuts ...

  2. 微言netty:不在浮沙筑高台

    1. 写作缘起 几年前,我在一家农业物联网公司,负责解决其物联网产品线.我们当时基于.net平台打造了一套实时数据采集系统,可以把数以百万级的传感器传送回来的数据采集入库并根据这些数据进行建模.在搭建 ...

  3. Siamese network 孪生神经网络

    Siamese network 孪生神经网络 https://zhuanlan.zhihu.com/p/35040994 https://blog.csdn.net/shenziheng1/artic ...

  4. ORM关于表那些事

    一.. ORM表和表之间的关系 1. 一对多 --> 外键(ForeignKey) 2. 多对多 --> 另外一张关系表(ManyToManyField) 1. 三种方式 1. 自己建立第 ...

  5. docker的安装,升级,与删除(最新版)

    docker安装在ubuntu上 以前叫做 Docker engine安装现在叫做docker-ce的 第一种安装办法: root下执行,sudo su - root apt-get update - ...

  6. BZOJ 2200 道路与航线 (算竞进阶习题)

    dijkstra + 拓扑排序 这道题有负权边,但是卡了spfa,所以我们应该观察题目性质. 负权边一定是单向的,且不构成环,那么我们考虑先将正权边连上.然后dfs一次找到所有正权边构成的联通块,将他 ...

  7. <数据结构基础学习>(二)简单的时间复杂度分析

    一.简单的复杂度分析 O(1) O(n) O(logn) O(logn) O(n^2) 大O描述的是算法的运行事件和输入数据之间的关系 Eg: 数组求和 public static int sum(i ...

  8. class09

    class09 四川菜很辣. Sichuan cuisine is very spicy. 那个汤是凉的. That soup is cold. 这茶很烫. This tea is very hot. ...

  9. django系列3 :创建模型

    1创建模型 在我们简单的民意调查应用程序中,我们将创建两个模型:Question和Choice.A Question有问题和出版日期.A Choice有两个字段:选择的文本和投票记录.每个Choice ...

  10. MapReduce-FileInputFormat

    在运行 MapReduce 程序时,输入的文件格式包括:基于行的日志文件.二进制格式文件.数据库表等.那么,针对不同的数据类型,MapReduce 是如何读取这些数据? FileInputFormat ...