深入浅出Redis04使用Redis数据库(lists类型)
一 lists类型及操作
List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字。 Redis的list类型其实就是一个每个子元素都是sring类型的双向链表。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样 list既可以作为栈,有可以作为队列。
二 lists类型的使用
1. lpush
在key对应list的头部添加字符串。
redis 127.0.0.1:> lpush mylist1 world
(integer)
redis 127.0.0.1:> lpush mylist1 hello
(integer)
redis 127.0.0.1:> lrange mylist1 -
) "hello"
) "world"
2. rpush
在key对应list的尾部添加字符串。
redis 127.0.0.1:6379> rpush mylist2 bbb
(integer) 1
redis 127.0.0.1:6379> rpush mylist2 aaa
(integer) 2
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "bbb"
2) "aaa"
3. linsert
在key对应的list的特定位置前或后添加字符串。
redis 127.0.0.1:6379> rpush mylist3 world
(integer) 1
redis 127.0.0.1:6379> linsert mylist3 before world hello
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "world"
4. lset
设置list中指定下标的元素值。
redis 127.0.0.1:> rpush mylist5 world
(integer)
redis 127.0.0.1:> lset mylist5 hello
OK
redis 127.0.0.1:> lrange mylist5 -
) "hello"
5 lrem
从key对应list中删除n个和value相同的元素。( n < 0 从未删除, n =0 全部删除)
redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> lrem mylist6 hello
(integer)
6 ltrim
保留指定key 的范围内的数据。
redis 127.0.0.1:6379> rpush mylist8 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist8 two
(integer) 2
redis 127.0.0.1:6379> ltrim mylist8 1 -1
OK
redis 127.0.0.1:6379> lrange mylist8 0 -1
1) "two"
7 lpop
从list的头部删除元素,并返回删除元素。
redis 127.0.0.1:6379> rpush mylist11 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist11 two
(integer) 2
redis 127.0.0.1:6379> rpush mylist11 three
(integer) 3
redis 127.0.0.1:6379> lpop mylist11
"one"
redis 127.0.0.1:6379> lrange mylist11 0 -1
1) "two"
2) "three"
8.rpoplpush
从第一个list的尾部移出元素并添加到第二个list的头部。
redis 127.0.0.1:> rpush mylist12 one
(integer)
redis 127.0.0.1:> rpush mylist12 two
(integer)
redis 127.0.0.1:> rpush mylist13 aaa
(integer)
redis 127.0.0.1:> rpush mylist13 bbb
(integer)
redis 127.0.0.1:> rpush mylist13 ccc
(integer)
redis 127.0.0.1:> rpoplpush mylist12 mylist13
"two"
redis 127.0.0.1:> lrange mylist12 -
) "one"
redis 127.0.0.1:> lrange mylist13 -
) "two"
) "aaa"
) "bbb"
) "ccc"
9 lindex
返回名称为key的list中index位置的元素。
redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"
redis 127.0.0.1:6379> lindex mylist13 0
"two"
redis 127.0.0.1:6379> lindex mylist13 1
"aaa"
redis 127.0.0.1:6379> lindex mylist13 2
"bbb"
10 llen
返回key对应list的长度。
redis 127.0.0.1:6379> llen mylist13
(integer) 4
redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"
深入浅出Redis04使用Redis数据库(lists类型)的更多相关文章
- 深入浅出Redis02 使用Redis数据库(String类型)
一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...
- 深入浅出Redis03 使用Redis数据库(hashes类型)
一 hashes类型及操作 Redis hash是一个string类型的field和value的映射表.它的添加,删除操作都是0(1)(平均).hash特别适合用于存储对象,相较于对将对象的每个字段存 ...
- 使用Redis数据库(String类型)
一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...
- redis的lists类型
List是一个链表结构 , 主要功能是push . pop .获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双 ...
- 03_NoSQL数据库之Redis数据库:list类型
lists类型及操作 List是一个链表结构,主要功能室push,pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是一个每个元素都是string类型 ...
- Redis数据库
Redis是k-v型数据库的典范,设计思想及数据结构实现都值得学习. 1.数据类型 value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有 ...
- Redis 数据库入门指南
Redis 是一个开源数据库,它使用内存数据结构存储,可作为数据库.缓存和消息代理使用.Redis 支持丰富的数据结构,有:字符串(Strings).哈希(Hashs).列表(Lists).集合(Se ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- Redis数据库入门教程
[使用redis客户端] 我们直接看一个例子: 复制代码 代码如下: //这样来启动redis客户端了 $ ./redis-cli //用set指令来设置key.value 127.0.0.1:637 ...
随机推荐
- Windows Phone:如何检查WMAppManifest中的Capability属性
在Windows Phone应用中有一个应用程序清单(WMAppManifest.xml),其中对于不同的应用可以设定Capability来告知需要哪些特性或功能,详细内容可以参考官方文档: http ...
- 抓包排错-tcp.flags.reset
一 排查思路: 1,了解协议运作过程 2,抓包 最小化原则 对比法 二 案例 微信连wifi问题: 不同地区的微信服务器的地址可能不同. 当出现认证问题: 1,不能跳转,点了按钮没反应 2,打开后 ...
- Linux Linux程序练习十一(网络编程大文件发送UDP版)
//网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> # ...
- Qt——信号槽连接:基于字符串与基于函数的连接之间的不同
从Qt5.0开始,Qt提供了两种不同的方式进行信号槽的连接:基于 字符串 的连接语法.基于 函数 的连接语法.这两种语法各有利弊,下面对它们的不同点进行总结. 以下几部分详细解释了它们之间的不同,并说 ...
- VBA的一些使用心得
VBA的知识比较零散,因此开一贴记录一下使用VBA时的一些方法和心得.主要针对Excel,参考在这里 1. Collection Class 大部分情况下,Collection Class是比数组(A ...
- Listview实现不同类型的布局
打开各种客户端发现 Listview的布局多种多样,在我以前的认知中listview不是只能放一种item布局嘛,我就震惊了,现在我自己的项目上要用到这种方式那么就去做下 原理是listview 的a ...
- [CareerCup] 2.7 Palindrome Linked List 回文链表
2.7 Implement a function to check if a linked list is a palindrome. LeetCode上的原题,参见我之前的博客Palindrome ...
- 【转载】UVa 11464 Even Parity 偶数矩阵
题意:给你一个n*n的01矩阵,让你把这个矩阵中尽量少的0转换成1,使得矩阵每个位置的上下左右四个相邻的数加起来能被2整除,求最少的转换数 首先,n 的规模并不大,最大只有15.但是完全枚举整个矩阵显 ...
- javascript中prototype、constructor以及__proto__之间的三角关系
三者暧昧关系简单整理 在javascript中,prototype.constructor以及__proto__之间有着“著名”的剪不断理还乱的三角关系,楼主就着自己对它们的浅显认识,来粗略地理理以备 ...
- HoloLens开发手记 - Unity之语音输入
对于HoloLens,语音输入是三大基本输入方式之一,广泛地运用在各种交互中.HoloLens上语音输入有三种形式,分别是: 语音命令 Voice Command 听写 Diction 语法识别 Gr ...