当前位置: 首页 > news >正文

装修设计公司logoseo免费推广软件

装修设计公司logo,seo免费推广软件,淄博网站制作设计高端,4399任天堂个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令LPUSH 和 LPUSHXLRANGERPUSH 和 RPUSHXLPOP 和 RPOPLINDEXLINSERTLLENLREMLTRIMLSET阻塞版命令BLPOP 和 BRPOP 内部编码总结 前言 列…

在这里插入图片描述

个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》《网络》 《redis学习笔记》

文章目录

  • 前言
  • 命令
    • LPUSH 和 LPUSHX
    • LRANGE
    • RPUSH 和 RPUSHX
    • LPOP 和 RPOP
    • LINDEX
    • LINSERT
    • LLEN
    • LREM
    • LTRIM
    • LSET
    • 阻塞版命令
      • BLPOP 和 BRPOP
  • 内部编码
  • 总结


前言

列表类型是用来存储多个有序的字符串,列表中的每个字符串称为元素;列表是一种灵活的数据结构,可以充当栈和队列。

下图为列表两端插入和弹出操作
在这里插入图片描述
下图为列表的获取和删除等操作
在这里插入图片描述
注意:
约定最左侧元素下标是0;
redis的下标支持负数下标;
list 并非是一个简单的数组,而是更接近于双端队列;

列表类型的特点:

  • 列表中的元素是有序的,有序表示元素的顺序很重要。相同元素不同顺序是不同的列表
  • 列表中的元素是允许重复的

命令

LPUSH 和 LPUSHX

将一个或者多个元素从左侧(头插)放入到list中

LPUSH key element [element … ]

返回值:插入后list的长度
时间复杂度:O(N),N为插入元素个数

在这里插入图片描述


在key存在时,将一个或者多个元素从左侧放入(头插)到list中。不存在,直接返回

LPUSHX key element [element … ]

返回值:插入后list的长度
时间复杂度:O(N),N为插入元素个数

在这里插入图片描述


注意:
如果key已经存在,并且key对应的value类型,不是list,此时lpush命令就会报错
在这里插入图片描述
redis 中所有的这些各种数据类型的操作,都是类似的效果


LRANGE

获取从 start 到 end 区间所有元素,左闭右闭。

LRANGE key start stop

返回值:指定区间的元素
时间复杂度:O(N)

在这里插入图片描述

redis并没有提供 rrange 命令


注意:
redis处理下标,是直接尽可能的获取到给定区间的元素;如果给定区间非法,比如超出下标就会尽可能的获取对应的内容。
在这里插入图片描述


RPUSH 和 RPUSHX

将一个或者多个元素从右侧放入(尾插)到list中

RPUSH key element [ element … ]

返回值:插入后list的长度
时间复杂度:O(N),N为插入元素个数

在这里插入图片描述


在 key 存在时,将一个或多个元素从右侧放入(尾插)到list中,不存在,直接返回

RPUSHX key element [ element … ]

返回值:插入后list的长度
时间复杂度:O(N),N为插入元素个数
在这里插入图片描述


LPOP 和 RPOP

从list左侧取出元素(头删)

LPOP key

返回值:取出的元素或者nil
时间复杂度:O(1)

在这里插入图片描述


从list右侧取出元素(尾删)

RPOP key

返回值:取出的元素或者nil
时间复杂度:O(1)

在这里插入图片描述


注意:
redis中的list是一个双端队列,从两头插入/删除元素都是O(1);搭配使用 rpush 和 lpop 就相当于 队列,搭配使用 rpush 和 rpop 就相当于 栈。


LINDEX

获取从左数第index位置的元素

LINDEX key index

返回值:取出的元素 或者 nil
时间复杂度:O(N),N为list的长度

在这里插入图片描述


LINSERT

在特定位置插入元素

LINSERT key < BEFORE | AFTER> pivot element

返回值:插入后的list长度
时间复杂度:O(N),N为list的长度

在这里插入图片描述


注意:
如果要插入的列表中,基准值存在多个,怎么办?insert进行插入时,要根据基准值,找到对应的位置。从左往右找,找到第一个符合基准值的位置即可。

在这里插入图片描述


LLEN

获取 list 长度

LLEN key

返回值:list的长度
时间复杂度:O(1)

在这里插入图片描述


LREM

移除list中指定数量的与给定值相等的元素

LREM key count value

返回值:被移除元素的数量
时间复杂度:O(N),N为list的长度

  • count > 0:从列表左侧开始,移除与 value 相等的最多 count个元素
  • count < 0:从列表尾部开始,移除与 value 相等的最多 count个元素
  • count = 0:移除列表中所有与value相等的元素

在这里插入图片描述


LTRIM

保留 start 和 stop 之间区间内的元素(区间两边的元素直接删除)

LTRIM key start stop

返回值:成功,返回“OK”
时间复杂度:O(N),N为被移除的元素数量
在这里插入图片描述


注意:
redis6 开始支持 ACL(access control list 访问控制列表),也就是权限。
redis由很多命令,acl把每个命令都打上标签,管理员就可以给每个redis用户配置不同的权限(允许 该用户 可以执行那些标签对应的命令)


LSET

将列表key中下标为index的元素的值设置为element

LSET key index element

返回值:成功,返回“OK”;失败,返回错误信息
时间复杂度:O(N),N为列表的长度
在这里插入图片描述


阻塞版命令

blpop 和 brpop 是 lpop 和 rpop 的阻塞版本。

  • 在列表中有元素的情况下,阻塞和非阻塞表现是一致的。如果列表中没有元素,非阻塞版本会立即返回nil,但阻塞版本会根据timeout,阻塞一段时间,期间redis可以执行其它命令,但要求执行该命令的客户端要表现为阻塞状态
  • 命令中如果设置了多个键,那么会从左向右进行遍历键,一但有一个键对应的列表可以弹出元素,命令立即返回
  • 如果多个客户端同时对一个键执行pop,则最先执行命令的客户端会得到弹出元素

redis中的list也相当于 阻塞队列 一样,线程安全是通过单线程模型支持的;阻塞,则只支持"队列为空"的情况,不考虑"队列满了"


BLPOP 和 BRPOP

BLPOP key [key …] timeout

BRPOP key [key …] timeout

如果这些list有任何一个非空,blpop都能够把这里的元素给获取到,立即返回;
如果这些list都为空,此时需要阻塞等待,等待其它客户端向这些list插入元素;
可以指定超时时间,单位是 秒 (redis 6 超时时间允许设定为小数;redis 5 超时时间要是整数)

brpop效果和blpop类似

  • 针对一个非空的列表进行操作
    在这里插入图片描述
    返回结果相当于一个pair(二元组),一方面告诉我们当前的数据来自哪个key,一方面告诉我们取到的数据是什么
  • 针对一个空的列表进行操作
    在这里插入图片描述
  • 针对多个key进行操作
    在这里插入图片描述

内部编码

之前list类型的内部编码实现有两种:

  • ziplist(压缩列表):当列表的元素个数小于 list-max-ziplist-entries 配置,同时列表中每个元素的长度都小于 list-max-ziplist-value 配置时,redis会选用ziplist来作为列表内部编码实现来减小内存消耗
  • linkedlist(链表):当列表类型无法满足ziplist的条件时,redis会使用linkedlist作为列表内部实现

现在list类型内部使用quicklist实现
quicklist是一个双向链表,但它的节点是压缩列表;每个quicklist节点都包含一个ziplist,ziplist中存储了list类型的数据元素。这种设计即保持了双向链表的插入和删除优势,又通过压缩列表提高了内存利用率

在这里插入图片描述


总结

以上就是我的redis学习笔记

在这里插入图片描述

http://www.khdw.cn/news/38427.html

相关文章:

  • wordpress文档阅读器seo搜索优化专员招聘
  • 南皮县网站建设价格如何搭建网站
  • 做网站初中网站seo快速优化技巧
  • 网站产品页面设计seo快速排名软件推荐
  • 网页设计案例教程杨松答案网站seo推广公司靠谱吗
  • 做网站运营的职业生涯规划windows优化大师和360哪个好
  • 云南房产网站建设美国最新消息今天 新闻
  • 酷家乐个人网页版关键词优化排名seo
  • 怎么做网站搜索引擎优化商业网站设计
  • 网站建设所需的硬软件百度上怎么发布作品
  • 日本做灯具公司网站合肥网络推广外包
  • 网站使用的语言竞价托管开户
  • 黑白风格网站百度在线提问
  • 成都知名建筑公司排名智谋网站优化公司
  • 帝国网站管理怎样上传css样式推广游戏怎么拉人最快
  • 备案 网站名字成人企业管理培训课程
  • 西宁制作网站多少钱最近一周的重大新闻
  • 信誉好的昆明网站建设会计培训班初级费用
  • 模板建站什么意思自媒体十大平台
  • wordpress 自建网站培训课程总结
  • 九一制作厂网站国内十大搜索引擎排名
  • 有没有专门做牛仔的网站网站推广软文范例
  • 微信漫画网站模板网站 seo
  • 杭州网站建设 博采网络有限公司环球军事网最新消息
  • 怎样找到专业做网站人网络营销公司
  • 织梦响应式茶叶网站上海网上推广
  • 网站上那些兼职网页怎么做的阿里关键词排名查询
  • 重庆建设工程施工安全网做seo需要用到什么软件
  • 网站建设价格槽闸阀个人在线做网站免费
  • 网站建设yankt谷歌浏览器官方app下载