Redis五种数据类型之 List 类型
List是一个链表结构,主要功能push,pop获取一个范围的所有值。key可以理解为链表的名字。list类型是一个每个元素都是String类型的双向链表,可用push/pop方法从头部或尾部添加或删除元素 既可做栈也可作队列。栈先进后出,队列后进先出。
下面切入正题咯:
常用命令总结(自用总结 不喜勿喷):
1.lpush方法(相当于一个栈)
在对应key对应list的头部添加/压入一个元素
后进先出
eg见2
2.lrange方法
在对应list取出 0代表从开始第一个元素 -1代表从尾部开始第一个元素 0 -1 代表从第一个元素到最后一个元素都取出来。注:后面的两个数字代表取的位置
127.0.0.1:6379> lpush testlist "hello"
(integer) 1
127.0.0.1:6379> lpush testlist "harbor"
(integer) 2
127.0.0.1:6379> lrange testlist 0 -1
1) "harbor"
2) “hello"
127.0.0.1:6379> lpush testlist "chung"
(integer) 3
127.0.0.1:6379> lrange testlist 0 -1
1) "chung"
2) "harbor"
3) "hello"
127.0.0.1:6379> lrange testlist 0 1
1) "chung"
2) "harbor"
127.0.0.1:6379> lrange testlist 1 2
1) "harbor"
2) "hello"
127.0.0.1:6379> lrange testlist 1 3
1) “harbor"
2) “hello"
示意图为:
栈 头
| |
|3.chung |
|2.harbor|
|1.hello |
| |
尾
3.rpush方法(相当于队列)
从尾部压入一个新元素(尾部添加)
先进先出
127.0.0.1:6379> rpush testlist2 "Harbor"
(integer) 1
127.0.0.1:6379> rpush testlist2 "Chung"
(integer) 2
127.0.0.1:6379> lrange testlist2 0 -1
1) "Harbor"
2) “Chung"
4.linsert方法
在key的对应list的特定位置添加元素
127.0.0.1:6379> linsert testlist2 before "Chung" " zhong "
(integer) 3
127.0.0.1:6379> lrange testlist2 0 -1
1) "Harbor"
2) " zhong "
3) “Chung"
规定 栈的尾—>头 定义为前
示意图为:
栈 头 下标
| | 前 0
|2.Harbor | ^ 1
|1.Chung | | 2
| | | ...
| | 后 etc
尾
5.lset方法
将list中制定下标的值替换为指定的新值
127.0.0.1:6379> lset testlist2 1 "blue"
OK
127.0.0.1:6379> lrange testlist2 0 -1
1) "Harbor"
2) "blue"
3) "Chung"
6.lrem方法
从key对应的list中从头部开始删除n个和value相同的元素(n<0从尾部删除,n=0全部删除)
127.0.0.1:6379> lrange testlist3 0 -1
1) "world"
2) "world"
3) "world"
4) "world"
5) "hello"
6) "hello"
7) "hello"
8) "world"
9) "world"
10) "world"
11) "hello"
127.0.0.1:6379> lrem testlist3 2 "world"
(integer) 2
127.0.0.1:6379> lrange testlist3 0 -1
1) "world"
2) "world"
3) "hello"
4) "hello"
5) "hello"
6) "world"
7) "world"
8) "world"
9) “hello"
127.0.0.1:6379> lrem testlist3 3 "world"
(integer) 3
127.0.0.1:6379> lrange testlist3 0 -1
1) "hello"
2) "hello"
3) "hello"
4) "world"
5) “world"
6) “hello”
--n=0的情况:
127.0.0.1:6379> lrem testlist3 0 "world"
(integer) 2
127.0.0.1:6379> lrange testlist3 0 -1
1) "hello"
2) "hello"
3) "hello"
4) “hello"
--删除0个元素的情况(list中未找到该类元素):
127.0.0.1:6379> lrem testlist3 0 "world"
(integer) 0
7.ltrim方法
保留指定key对应list的值范围内的数据,其余全部删除
127.0.0.1:6379> lrange testlist3 0 -1
1) "Green"
2) "Red"
3) "red"
4) "Blue"
5) "hello"
6) “hello"
127.0.0.1:6379> ltrim testlist3 0 -3
OK
127.0.0.1:6379> lrange testlist3 0 -1
1) "Green"
2) "Red"
3) “red"
4) "Blue"
8.lpop方法
从list的头部删除元素,并返回删除的元素
127.0.0.1:6379> lpop testlist3
"Green"
127.0.0.1:6379> lrange testlist3 0 -1
1) "Red"
2) "red"
3) "Blue"
9. rpop方法
从list的尾部删除元素,并返回删除的元素
127.0.0.1:6379> rpop testlist3
"Blue"
127.0.0.1:6379> lrange testlist3 0 -1
1) "Red"
2) "red"
10.rpoplpush方法
从第一个list的尾部移除元素并添加到第二个list的头部
注:如果第二个list不存在的话 会创建一个新的list并赋值
如果需要判断第二个list存在才执行操作的话 请使用rpoplpushx方法
127.0.0.1:6379> lrange testlist3 0 -1
1) "Red"
2) "red"
127.0.0.1:6379> lrange testlist 0 -1
1) "Red"
2) "blue"
3) "hello"
127.0.0.1:6379> rpoplpush testlist3 testlist
"red"
127.0.0.1:6379> lrange testlist3 0 -1
1) "Red"
127.0.0.1:6379> lrange testlist 0 -1
1) "red"
2) "Red"
3) "blue"
4) "hello”
11.lindex方法
返回名称为key的list中index位置的元素
127.0.0.1:6379> lrange testlist 0 -1
1) "red"
2) "Red"
3) "blue"
4) "hello"
127.0.0.1:6379> lindex testlist 1
"Red"
127.0.0.1:6379> lindex testlist 3
"hello"
127.0.0.1:6379> lindex testlist 2
"blue"
12.llen方法
返回key对应list的长度
127.0.0.1:6379> lrange testlist 0 -1
1) "red"
2) "Red"
3) "blue"
4) "hello"
127.0.0.1:6379> llen testlist
(integer) 4
相关推荐
3.Redis数据类型之List类型
根据《Redis笔记-尚硅谷周阳V1.3》整理,脑图、思维导图xmind
Redis笔记整理-五中数据类型之String和Hash,这两种数据类型是我们常用语做缓存,从而减轻数据库的压力,缓存我们一般放到服务成,被多个表现成调用达到公用性
使用Java操作Redis的字符串类型、list链表类型、hash哈希表类型、set无序集合类型的数据,简单易懂。
数据类型丰富:Redis支持多种数据类型,如字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)等。这使得Redis能够灵活地应对不同的应用场景。 速度极快:Redis的速度非常快,每秒...
数据结构 数据结构Redis中数据类型对应的数据结构 中数据类型对应的数据结构 Redis Redis 是⼀种键值(Key-Value)数据库。相对于关系型数据库(⽐如 MySQL),Redis 也被叫作⾮关系型数据库。 像 MySQL 这样的关系...
jizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-redis-mqjizq-...
在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...
主要介绍redis五种数据类型在Java中的详细使用 , 注释特别详细, 里面有我邮箱, 不懂的地方随时问我. 非常值得学习. 更多redis资料, 请与我邮箱联系!
Redis全套学习笔记-带章节目录
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
Nginx也是采用IO多路复用原理解决C10K问题# 查看redis支持的最大连接数,在redis.conf文件中可修改,# maxclients 10000其
笔记面试狂神说redis的整理文档
redis学习笔记redis 是一个开源的 key-value 数据库。它又经常被认为是一个数据结构服务器。 因为它的 value 不仅包括基本的 string 类型还有 list,set ,sorted set 和 hash 类型。当 然这些类型的元素也都是 string...
本文主要讲述:Redis所支持的数据类型、key、string、list、set、hash的相关命令,以及它的持久化、主从复制和事务。
一、Redis 介绍 二、Redis 性能介绍 三、Redis 功能 四、Redis 安装及配置 五、Redis 启动 六、Redis 的数据类型 七、Redis 的master/slave 配置
学习狂神说-Redis视频笔记,笔记完整并且加入了个人的理解和认知,笔记工整清晰,而且适合记忆学习。
redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...
介绍redis的五种数据类型的使用场景,更便于学习redis的操作,了解使用!
Redis学习笔记-包括周阳和狂神说