1.ArrayList与LinkList的区别

ArrayList的使用数组存入的方式,所以根据索引查询数据速度快,而增删元素是比较慢的,它需要将数据一位一位的移动,知道达到要求。

LinkList使用的是双向链表的方式存储数据的,每一个元素都记录前后元素的指针,所以插入、删除数据是很快的,但是想要查找元素,就相对比较慢了。如果查询前几个元素或者后面的几个元素是比较快的。

2.redis list的介绍

列表类型(list)可以存储一个有序的列表字符串,常用的操作是向列表两端添加元素,或者获取列表的某一段。

列表使用的是双向链表实现的吗,所以向列表中添加元素的复杂度为o(1),获取越接近两端的数据,速度越快,如果数据量很大,查找中间是很慢的。

3.命令

3.1向两端添加元素

向左边添加元素。

语法:LPUSH key value [value]

127.0.0.1:6379> lpush list:1 2 4 6
(integer) 3

向左边添加元素。

语法:RPUSH key value [value]

127.0.0.1:6379> Rpush list:1 7 8 9
(integer) 3

查看列表

LRANGE命令是列表最常用的命令之一,获取列表中的某一段,将返回tart、是图片之间的数据返回,从0开始,索引可以为负,-1代表最后的一个元素。

语法:LRANGE key start stop

127.0.0.1:6379> lrange list:1 0 2

从列表的两端将数据弹出

LPOP命令从列表左边弹出一个元素,会分两步完成:将数据删除,将数据返回。

语法:LPOP key  左弹出

  RPOP key 右弹出

127.0.0.1:6379> lpop list:1

127.0.0.1:6379> rpop list:1

获取数据的个数

语法:LLEN key

127.0.0.1:6379> llen list:1

删除所有的值

LREM命令会删除列表中前count个值为value的元素,返回实际删除的元素个数。根据count值的不同,该命令的执行方式会有所不同:

当count>0时, LREM会从列表左边开始删除

当count<0时, LREM会从列表后边开始删除。

当count=0时, LREM删除所有值为value的元素。

语法:LREM key count value

获取、设置指定索引的元素值

语法:LINDEX key index

127.0.0.1:6379> lindex l:list 2

设置值

LSET key index value

127.0.0.1:6379> lset l:list 2 2
OK
127.0.0.1:6379> lrange l:list 0 -1

只保留保留列表指定的片段

LTRIM key start stop

127.0.0.1:6379> lrange l:list 0 -1

向列表中插入数据

语法:LINSERT key BEFORE|AFTER pivot value

linsert list after 3 4
linsert list before 3 4

将一个元素从一个列表移动到另一个列表中

语法:RPOPLPUSH source destination

RPOPLPUSH list1 list2;

4.应用场景:

在Redis中创建商品评论列表,因为评论只是显示前面的几条数据,这样响应的速度是很快的。

Redis学习笔记(六)---List的更多相关文章

  1. Redis学习笔记六:持久化实验(AOF,RDB)

    作者:Grey 原文地址:Redis学习笔记六:持久化实验(AOF,RDB) Redis几种持久化方案介绍和对比 AOF方式:https://blog.csdn.net/ctwctw/article/ ...

  2. Redis学习笔记六:独立功能之 Lua 脚本

    Redis 2.6 开始支持 Lua 脚本,通过在服务器环境嵌入 Lua 环境,Redis 客户端中可以原子地执行多个 Redis 命令. 使用 eval 命令可以直接对输入的脚本求值: 127.0. ...

  3. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  4. (转)redis 学习笔记(1)-编译、启动、停止

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

  5. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  6. redis学习笔记(3)

    redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔 ...

  7. redis 学习笔记-cluster集群搭建

    一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...

  8. Redis学习笔记(二) Redis 数据类型

    Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...

  9. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  10. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

随机推荐

  1. 解决QML开发中ComboBox中一个已选择项没有清除的问题

    解决QML开发中ComboBox中一个已选择项没有清除的问题 近期使用QML开发一个项目.须要使用ComboBox进行显示.当进行一个操作时,须要向ComboBox加入一个元素,当进行另外一个操作时. ...

  2. Tools-->SQL Server Profiler监视数据库

    http://www.cnblogs.com/lorking/p/4062787.html https://docs.microsoft.com/en-us/sql/tools/sql-server- ...

  3. .Net强类型视图

    1.控制器 Controllers/StoreController.cs using System; using System.Collections.Generic; using System.Li ...

  4. single-page关于vue-router

    最近复习了vue,项目实战前有练手,做一个简单的单页面应用. 1.router-view就是我们渲染的组件,router-view被包裹在一个div中,一旦路由跳转,router-view就会被渲染为 ...

  5. 关于node的fs路径问题

    我在写一个静态网页的服务器中遇到的一个问题,当时没理解就去查了 因为要访问最外部的json文件,就定义了一个模块读取文件,然后在外边的server.js中调用 但是一直路径错误. 我相信很多人和我一样 ...

  6. CMDB学习之五服务端api

    服务端api 对发送来的数据进行处理,并返回结果,首先要创建一个Django项目 第一步,就是写URL路由在分支中写url api 主路由 from django.conf.urls import u ...

  7. 窗体是不出现在Alt+Tab中(窗体不出现在任务管理器中的应用程序列中)

    窗体是不出现在Alt+Tab中和不出现在任务管理器中的应用程序中 重写 CreateParams即可: public class MyForm : Form{ protected override C ...

  8. 【Hello 2018 D】Too Easy Problems

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 可以考虑把所有的题目按照ai排序. 然后顺序考虑最后做出来的题目个数和第i道题目的ai一样. 则1..i-1这些题目就没有用了. 值 ...

  9. 50行python代码实现个代理server(你懂的)

    之前遇到一个场景是这种: 我在自己的电脑上须要用mongodb图形client,可是mongodb的server地址没有对外网开放,仅仅能通过先登录主机A,然后再从A连接mongodbserverB. ...

  10. 取消cp命令别名

    1. 取消cp命令别名unalias cpcp -rf恢复别名alias cp='cp -i'2.关闭当前用户下的cp别名配置sed -i "s/alias cp='cp -i'/#alia ...