理解 Redis(6) - List 值
list 值就是一组根据插入顺序排列的字符串, 从左向右排列, 左边为头(head), 右侧为尾(tail). 左边为顶部, 右边为底部.
下图为 list 值的示意图:

从左侧开始向键为 num 的 list 插入数据:
127.0.0.1:6379> lpush num 1 2 3 4
(integer) 4
查看 num 里的数据, 因为数据是从左侧开始插入, 并且插入的先后顺序是从1到4, 所以1在最底层, 4在最顶层:
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
再从左侧插入一个数据:
127.0.0.1:6379> lpush num 5
(integer) 5
127.0.0.1:6379> lrange num 0 10
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
从左侧弹出一个数据, 因为5在最顶层, 所以最先弹出:
127.0.0.1:6379> lpop num
"5"
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
从右侧插入数据:
127.0.0.1:6379> rpush num 5
(integer) 5
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> rpush num 6
(integer) 6
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
6) "6"
从右侧弹出数据:
127.0.0.1:6379> rpop num
"6"
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
查看一个 list 的长度:
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> llen num
(integer) 5
根据索引查看 list 中某个位置的值:
127.0.0.1:6379> lindex num 3
"1"
127.0.0.1:6379> lindex num 0
"4"
根据索引修改 list 中某个位置的值:
127.0.0.1:6379> lset num 0 8
OK
127.0.0.1:6379> lrange num 0 10
1) "8"
2) "3"
3) "2"
4) "1"
5) "5"
在未知 list 长度的情况下, 可以使用 0 -1 的范围来查看 list 中的所有值:
127.0.0.1:6379> lrange num 0 -1
1) "8"
2) "3"
3) "2"
4) "1"
5) "5"
在插入数据之前, 先检查指定的键是否存在, 如果存在则插入, 如果不存在, 则返回0. 用这个命令插入, 一次只能插入一个值, 多个会报错:
127.0.0.1:6379> lpushx num 9
(integer) 6
127.0.0.1:6379> lrange num 0 -1
1) "9"
2) "8"
3) "3"
4) "2"
5) "1"
6) "5"
127.0.0.1:6379> lpushx sub 9
(integer) 0
在 list 中间的某个位置插入数据, 可以用 linsert 命令, 借助关键字 before 和 after 确定位置:
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "2"
4) "3"
5) "8"
6) "9"
127.0.0.1:6379> linsert num before 8 55
(integer) 7
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "2"
4) "3"
5) "55"
6) "8"
7) "9"
127.0.0.1:6379> linsert num after 1 66
(integer) 8
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "66"
4) "2"
5) "3"
6) "55"
7) "8"
8) "9"
以上, 就是关于 list值的相关命令, enjoy......
理解 Redis(6) - List 值的更多相关文章
- 理解 Redis(3) - 字符串值
正如前面所讲的, redis 的数据结构就是一系列的键值对键 -> printable ASCII (可打印的 ASCII 码, 最大值是 512MB)值 -> Primitives (基 ...
- 理解 Redis(7) - Set 值
unordered collection of unique strings.set值是唯一的字符串的无序集合, 把握住两个特点: 唯一, 无序. 清空所有的数据, 并清理显示界面: 127.0.0. ...
- 理解 Redis(5) - 哈希值
哈希值存储示意图:首先, 我想先认真理解一下哈希值的数据结构:前面讲过, redis 存储的是键值对, 键永远都是可以打印的 ASCII 码, 值是字符串, 或者是以其他形式包裹的字符串. 上两节介绍 ...
- 深入理解Redis:底层数据结构
简介 redis[1]是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- 深入理解Redis主键失效原理及实现机制(转)
原文:深入理解Redis主键失效原理及实现机制 作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Redis 也不例外.在 Redis 提供的诸多命令中,EXPIRE.EXPIREA ...
- C++ : 从栈和堆来理解C#中的值类型和引用类型
C++中并没有值类型和引用类型之说,标准变量或者自定义对象的存取默认是没有区别的.但如果深入地来看,就要了解C++中,管理数据的两大内存区域:栈和堆. 栈(stack)是类似于一个先进后出的抽屉.它的 ...
- 【原创】深入理解c++的右值引用
0 左值和右值 一个左值表达式代表的是对象本身,而右值表达式代表的是对象的值:变量也是左值. 1 右值引用作用 为了支持移动操作(包括移动构造函数和移动赋值函数),C++才引入了一种新的引 ...
- 深入理解Redis内存模型
前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串 ...
- 深入理解redis复制原理
原文:深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof ...
随机推荐
- Symfony2 学习笔记之系统路由
mfony2 学习笔记之系统路由 漂亮的URL绝对是一个严肃的web应用程序必须做到的,这种方式使index.php?article_id=57这类的丑陋URL被隐藏,由更受欢迎的像 /read/ ...
- CAT Caterpillar ET Diagnostic Adapter has a powerful function
As a excellent Professional Diagnostic Tools products, CAT Caterpillar ET Diagnostic Adapter has a p ...
- Python+OpenCV图像处理(三)—— Numpy数组操作图片
一.改变图片每个像素点每个通道的灰度值 (一) 代码如下: #遍历访问图片每个像素点,并修改相应的RGB import cv2 as cv def access_pixels(image): prin ...
- maven war工程重命名
1,按f2对项目进行改名 2,改变其web.xml 的项目名 3,org.eclipse.wst.common.component 改变其项目名
- 安装虚拟环境virtualenvwrapper和django
以下操作在windows平台进行 1.安装虚拟环境virtualenvwrapper 首先需要安装python管理工具pip,安装完python3.7之后自带了pip,可通过where pip查看管理 ...
- fjwc2019
机房搬迁.......再加上文化课.......咕了十几天才有空补上....... day0听一个教授讲理论......在学长的带领下咕掉了..... D1 T1:#178. 「2019冬令营提高组」 ...
- zookeeper各种报错、原因及解决方法汇总(持续更新)
[root@iZ23nn1p4mjZ zookeeper-3.4.10]# bin/zkCli.sh -server localhost:2181,localhost:2182,localhost:2 ...
- cannot_delete_plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@iZbp1iiexwyqe7tpjigcg9Z-plugins-expand"
[root@iZbp1iiexwyqe7tpjigcg9Z rabbitmq]# cat startup_err /usr/lib/rabbitmq/bin/rabbitmq-env: line 91 ...
- Python 用pygame模块播放MP3
安装pygame(这个是python3,32位的) pip安装这个whl文件 装完就直接跑代码啦,很短的 import time import pygame file=r'C:\Users\chan\ ...
- Docker基础学习-尚硅谷
视频地址:链接: https://pan.baidu.com/s/15sJuEh5cVTJ7-vWSH7vffw 提取码: zf25 笔记: