首页 > 数据库 >Redis 数据类型list以及使用场景

Redis 数据类型list以及使用场景

时间:2022-08-18 17:28:15浏览次数:90  
标签:Redis 元素 list 列表 key 移除 数据类型 数据

简介: Redis 数据类型list以及使用场景

数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
list类型:保存多个数据,底层使用双向链表存储结构实现

list 类型数据基本操作

  • 添加/修改数据
lpush key value1 [value2] ……
rpush key value1 [value2] ……

左边插入
image.png
右边插入
image.png

  • 获取数据
lrange key start stop//获取指定步长列表
lindex key index//获取指定下标
llen key//获取指定长度

image.png
sotp为-1就是结尾

image.png
image.png

  • 获取并移除数据
lpop key
rpop key

这里你理解成lpop是从栈顶出,rpop是从栈底出就明白了(或者链表表头和表尾)
image.png
image.png

list 类型数据扩展操作

  • 规定时间内获取并移除数据
blpop key1 [key2] timeout//移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
brpop key1 [key2] timeout //移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
brpoplpush source destination timeout //从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或发现可弹出元素为止

image.png
没有元素的话,首先进行阻塞,然后再左侧插入一个,右边立马就可以移除了。
image.png

  • 业务场景

微信朋友圈点赞,要求按照点赞顺序显示点赞好友信息
如果取消点赞,移除对应好友信息

  • 移除指定数据
lrem key count value

count 为零时移除所有 不为零 移除几个就count为几
image.png
redis 应用于具有操作先后顺序的数据控制

list 类型数据操作注意事项

  • list中保存的数据都是string类型的,数据总容量是有限的,最多2的32次方-1个元素 (4294967295)。
  • list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作
  • 获取全部数据操作结束索引设置为-1
  • list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加载
  • 业务场景

twitter、新浪微博、腾讯微博中个人用户的关注列表需要按照用户的关注顺序进行展示,粉丝列表需要将最
近关注的粉丝列在前面。
新闻、资讯类网站如何将最新的新闻或资讯按照发生的时间顺序展示。
企业运营过程中,系统将产生出大量的运营数据,如何保障多台服务器操作日志的统一顺序输出。

  • list 类型应用场景
  • 解决方案
    依赖list的数据具有顺序的特征对信息进行管理
    使用队列模型解决多路信息汇总合并的问题
    使用栈模型解决最新消息的问题
    redis 应用于最新消息展示
原文链接:https://click.aliyun.com/m/1000354006/ 本文为阿里云原创内容,未经允许不得转载。

标签:Redis,元素,list,列表,key,移除,数据类型,数据
From: https://www.cnblogs.com/yunqishequ/p/16599388.html

相关文章

  • redis安全篇
    redis安全redis被攻击,作为突破口,服务器惨遭毒手的事太常见了。大多数云服务器被攻击,都是redis,mongodb等数据库被入侵。因此修改端口,密码,以及注意bind运行地址,是必须。......
  • Redis篇:Linux下操作redis
    目录一、redis介绍安装和配置典型应用场景1.1介绍1.2redis特性1.3下载安装1.4三种启动方式1.5客户端链接1.6redis典型使用场景二、API的使用2.1通用命令2.2字符串......
  • linux 在线安装redis6.2.4
    1.下载安装包(usr/local)wgethttp://download.redis.io/releases/redis-6.2.4.tar.gz1.1如果wget报错安装weget插件yum-yinstallwget 2.解压安装包tar......
  • Python 数据类型及转换
    Python数据类型及转换说明:Python每一个变量在使用前都要赋值,每个变量都有一个数据类型,之前说的type()函数可以查看变量的类型。Python常见的数据类型有:Number(数字)、Strin......
  • 4、Python语法入门之基本数据类型
    4、Python语法入门之基本数据类型 目录一引子二数字类型2.1int整型2.1.1作用2.1.2定义2.2float浮点型2.2.1作用2.2.2定义2.3数字......
  • list<Object> 对象集合 去重
    在项目中遇到了在list集合中,要根据User对象的ID进行去重.使用了以下几种方法,但唯独第三种生效.先挖个坑,等我看完文档了,再来填.publicstaticList<User>re......
  • 将一个list均分成n个list
    packageorg.apache.test;importjava.util.ArrayList;importjava.util.List;publicclassJavaDemo{/***将一个list均分成n个list**@param......
  • 评分管理系统环境部署:JDK1.8,nginx:1.14.0,redis 6.2.4 ,mysql 8.0.22
    背景:环境要求服务器上部署项目,需要JDK1.8,nginx:1.14.0,redis6.2.4,mysql8.0.22,使用在线安装版本或者docker版本;linux的版本是CentOs7.4(cat/etc/redhat-release);jdk......
  • Redis5种基本数据类型的常用操作命令
    1、key相关操作1kyes*--查看所有key2existskey--判断key是否存在3typekey--查看key类型4delkey--删除key5unlinkkey--删除key【异步】6expirekey......
  • Java01-数据类型
    注释单行注释://多行注释:/*注释*/文档注释:/**注释*/:有含义的标识符Java所有的组成部分都需要名字:类名、变量名以及方法名都被成为标识符标......