第1篇:https://www.cnblogs.com/cgzl/p/10294175.html

第2篇 String:https://www.cnblogs.com/cgzl/p/10297565.html

第3篇 Hash:https://www.cnblogs.com/cgzl/p/10301916.html

本文介绍Redis的List和SET,可能比较无聊,大多内容来自文档。

List

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里面已经没有元素了,这时执行pop就会返回null:

LTRIM

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

BRPOP,BLPOP

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

例子里面的5 就是等待5秒。

而如果这个参数改为0,那就是永远等待:

而当一旦有新的元素加入的时候,该命令就会立即返回元素:

此外您还应该研究一下RPOPLPUSHBRPOPLPUSH这两个命令。

自动创建和移除Key

通过Redis的命令我们可以发现,

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

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

而从集合删除数据的时候,如果集合是空的,那么集合的Key就会自动销毁(Stream类型除外):

而针对只读命令(例如LLEN,返回list的长度)也具有同样的效果:

.NET Core 操练LIST

LPUSH,RPUSH,LRANGE

结果:

LPOP,RPOP

结果:

LTRIM

结果:

BRPOP,BLPOP

这个说来话长,暂不演示。

SET

Redis的SET是无序的String集合,它里面的元素是不会重复的。

SADD

SADD命令会添加新元素到SET:

可以看到一次性可以添加一个或多个元素。

SMEMBERS

SMEMBERS可以获取set里所有的元素:

但是每次调用得到结果的顺序是无法保证的。

SISMEMBER

SISMEMBER可以判断某个元素是否在set里:

返回1表示true,0表示false。

SINTER

SINTER可以查看多个set之间的交集:

SPOP

SPOP可以随机从set中移除一个或多个元素并返回:

SUNIONSTORE

把多个set合并到一个set里可以使用SUNIONSTORE,格式是sunionstore 目标set set1 set2 ...:

如果只有一个set需要合并的话,那么就相当于是复制:

SCARD

SCARD可以获取set的大小:

SRANDMEMBER

SRANDMEMBER可以随机获取set里面的元素,但是不会移除它们:

.NET Core 操练SET

SADD,SMEMBNERS

结果:

SISMEMBER

结果:

SINTER

结果:

SPOP

结果:

SUNIONSTORE

结果:

SCARD

结果:

SRANDMEMBER

结果:

Redis in .NET Core 入门:(4) LIST和SET的更多相关文章

  1. Redis in .NET Core 入门:(1) 安装和主要功能简介

    Redis(https://redis.io/), 是一个内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 安装Redis 我很少在开发机中直接装各种数据库,我一般使用Docker,针对 ...

  2. Redis in .NET Core 入门:(5) Sorted SET

    第1篇:https://www.cnblogs.com/cgzl/p/10294175.html 第2篇 String:https://www.cnblogs.com/cgzl/p/10297565. ...

  3. Redis in .NET Core 入门:(3) Hash

    第1篇:https://www.cnblogs.com/cgzl/p/10294175.html 第2篇 String:https://www.cnblogs.com/cgzl/p/10297565. ...

  4. Redis in .NET Core 入门:(2) String

    第1篇:https://www.cnblogs.com/cgzl/p/10294175.html‘ 本文简单介绍一下Redis的常用数据类型String. 基本上都是文档上的内容,所以比较无聊.... ...

  5. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  6. Redis 笔记 01:入门篇

    Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  7. CentOS开发ASP.NET Core入门教程

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...

  8. ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门

    一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...

  9. ASP.NET Core入门(一)

    大家好,很荣幸您点了开此篇文章,和我一起来学习ASP.NET Core,此篇文字为<ASP.NET Core入门>系列中的第一篇,本系列将以一个博客系统为例,从第一行代码,到系统发布上线( ...

随机推荐

  1. Unity pdb2mdb错误

    错误: D:\sandbox\sandbox_art\sandbox_artprj\Assets\Plugins\Sandbox\Editor>"C:\ProgramFiles/Uni ...

  2. TensorFlow图像处理API

    TensorFlow提供了一些常用的图像处理接口,可以让我们方便的对图像数据进行操作,以下首先给出一段显示原始图片的代码,然后在此基础上,实践TensorFlow的不同API. 显示原始图片 impo ...

  3. mac下安装Python3.*(最新版本)

    前言:mac系统自带python,不过以当前mac系统的最新版本为例,自带的python版本都是2.*版本,虽然不影响老版本项目的运行,但是python最新的3.*版本的一些语法与2.*版本并不相同, ...

  4. 第五章 MySQL函数

    一.数学函数 (1) 绝对值函数:ABS(x) ABS(x) 用于返回 x 的绝对值 mysql> SELECT ABS(2), ABS(-2.3), ABS(-33); +--------+- ...

  5. Linux环境安装配置JDK

    本文安装环境为Ubuntu14 64位,jdk版本为jdk1.6.0_38,安装文件名为jdk-6u38-linux-x64.bin(根据系统不同,下载不同的安装文件) 下载地址:http://www ...

  6. java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数

    public class Demo02 { @SuppressWarnings("all") public static void main(String[] args) thro ...

  7. springboot+redis实现分布式session共享

    官方文档,它是spring session项目的redis相关的一个子文档:https://docs.spring.io/spring-session/docs/2.0.0.BUILD-SNAPSHO ...

  8. 如何发布jar包到maven中央仓库

    自使用maven以来,没少使用maven中央仓库中的各种jar包,方便有效,但是咱们也不能总是只取不予,也应该懂得奉献,当你写好了一个十分好用的jar包,想贡献出去给大家使用的时候,应该怎么做呢?当然 ...

  9. jQuery学习之旅 Item9 动画效果

    1.元素的显示和隐藏 display:none; 隐藏 display:block; 显示 简单显示和隐藏方法 a) show() 显示 b) hide() 隐藏 c) toggle() 开关,显示则 ...

  10. 巩固java(一)----java与对象

         C语言是一种面向过程语言,在解决问题时,要先分析出问题的解决步骤,然后按顺序一步步实现,使用的时候一个一个调用.所以面向过程编程是以过程为中心的.      不同于面向过程编程,面向对象编程 ...