Redis学习笔记(六)---List
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的更多相关文章
- Redis学习笔记六:持久化实验(AOF,RDB)
作者:Grey 原文地址:Redis学习笔记六:持久化实验(AOF,RDB) Redis几种持久化方案介绍和对比 AOF方式:https://blog.csdn.net/ctwctw/article/ ...
- Redis学习笔记六:独立功能之 Lua 脚本
Redis 2.6 开始支持 Lua 脚本,通过在服务器环境嵌入 Lua 环境,Redis 客户端中可以原子地执行多个 Redis 命令. 使用 eval 命令可以直接对输入的脚本求值: 127.0. ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- redis学习笔记(3)
redis学习笔记第三部分 --redis持久化介绍,事务,主从复制 三,redis的持久化 RDB(Redis DataBase)AOF(Append Only File) RDB:在指定的时间间隔 ...
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
随机推荐
- Java 实现策略(Strategy)模式
策略模式:行为型模式 将同一行为,不同的处理算法分别封装起来.让它们之间能够互相替换 1. 定义一个超类型接口,及 行为方法 2. 定义不同的实现类,实现该行为的 不同的算法 /** * 策略模式:针 ...
- es7 --- 新特性
ES7只有2个特性: includes() 指数操作符 不使用ES7 使用indexOf()验证数组中是否存在某个元素,这时需要根据返回值是否为-1来判断: let arr = ['react', ' ...
- js中常用的对象—Array的属性和方法
今天说一下,js中常用的内置对象——Array对象 Array常用属性: length prototype :给系统对象添加属性和方法 Array常用方法: Array.prototype.sum = ...
- 洛谷P3531 [POI2012]LIT-Letters
题目描述 Little Johnny has a very long surname. Yet he is not the only such person in his milieu. As it ...
- JQ 实施编辑 (clone()复制行||双击编辑)
//代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- js中Array.prototype.push.call的用法
var arr = [] Array.prototype.push.call(arr,"a","b","c") <==> []. ...
- cksum---检验文件CRC是否正确
- 洛谷 P1105 平台
P1105 平台 题目描述 空间中有一些平台.给出每个平台的位置,请你计算从每一个平台的边缘落下之后会落到哪一个平台上.注意,如果某两个平台的某个两边缘横坐标相同,物体从上面那个平台落下之后将不会落在 ...
- 魔兽世界serverTrinitycore分析一:前言
一:简单介绍 项目地址:https://github.com/TrinityCore/TrinityCore 帖一段官网介绍吧 TrinityCore is a MMORPG Framework ba ...
- 将NSTimer加入至RunLoop中的两种方法差别
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...