文档章节

Redis数据库list类型

webphp
 webphp
发布于 2017/07/26 11:28
字数 1146
阅读 32
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一、List类型及操作

    1、简介
    List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字,Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以做为队列
    2、类型操作
        1)、lpush
            在key对应list的头部添加字符串元素
            如:lpush mylist "world"
//lpush相当于php中栈一样,先压入的数据后出,插入一个新的元素头部(左边)
127.0.0.1:6379> lpush mylist value1
(integer)1
127.0.0.1:6379> lpush mylist value2
(integer)2
//lrange是获取列表的值(0:从列表的第一个元素获取,-1:列表的尾)
127.0.0.1:6379> lrange mylist 0-1
1)value2
2)value1
        2)、lrange
            获取mylist中的值,LRANGE 利用了两个检索值,0表示list的开头第一个,-1表示list的倒数第一个,即最后一个。-2则便是list的倒数第二个,以此类推。
//lrange mylist 0 -1 //代表从mylist中的开头一直取到尾0代表第一个元素,-1代表最后一个元素
127.0.0.1:6379> lpush mylist hello
(integer)1
127.0.0.1:6379> lpush mylist world
(integer)2
127.0.0.1:6379> lrange mylist 0-1
1) world
2) hello
 
        3)、rpush
            在key对应list的尾部添加字符串元素
//rpush相当于php中队列一样,先压入的数据先出,插入一个新的元素尾部(右边)
127.0.0.1:6379> rpush mylist hello
(integer)1
127.0.0.1:6379> rpush mylist world
(integer)2
//lrange是获取列表的值(0:从列表的第一个元素获取,-1:列表的尾)
127.0.0.1:6379> lrange mylist 0-1
1)hello
2)world
        4)、linsert
            在key对应的list的特定位置前或后添加字符串
            如:linsert mylist before "world" "hello" //在world前添加一个元素
127.0.0.1:6379> lrange mylist 0-1
1)"hello"
2)"world"
3)"beijing"
4)"huajun"
127.0.0.1:6379> linsert mylist before world Love
(integer)5
127.0.0.1:6379> lrange mylist 0-1
1)"hello"
2)"Love"
3)"world"
4)"beijing"
5)"huajun"
127.0.0.1:6379> linsert mylist after huajun group
(integer)6
127.0.0.1:6379> lrange mylist 0-1
1)"hello"
2)"Love"
3)"world"
4)"beijing"
5)"huajun"
6)"group"
127.0.0.1:6379>
        5)、lset
            设置list中指定下标的元素值
            如:lset mylist 0 "world"
127.0.0.1:6379> lrange mylist 0-1
1)"hello"
2)"Love"
3)"world"
4)"beijing"
5)"huajun"
6)"group"
127.0.0.1:6379> lset mylist 0Hello
OK
127.0.0.1:6379> lrange mylist 0-1
1)"Hello"
2)"Love"
3)"world"
4)"beijing"
5)"huajun"
6)"group"
127.0.0.1:6379>
        6)、lrem
            从key对应list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)
            如:lrem mylist 1 "hello" //从mylist列中删除一个和hello相同的值
127.0.0.1:6379> lrange mylist 0-1
1)"Hello"
2)"Love"
3)"Hello"
4)"beijing"
5)"huajun"
6)"group"
7)"Hello"
127.0.0.1:6379> lrem mylist -1Hello//将尾部的Hello删除
(integer)1
127.0.0.1:6379> lrange mylist 0-1
1)"Hello"
2)"Love"
3)"Hello"
4)"beijing"
5)"huajun"
6)"group"
127.0.0.1:6379> lrem mylist 1Hello //将mylist开头的Hello删除
(integer)1
127.0.0.1:6379> lrange mylist 0-1
1)"Love"
2)"Hello"
3)"beijing"
4)"huajun"
5)"group"
127.0.0.1:6379> lrem mylist 0Hello//将mylist中全部的Hello删除
(integer)1
127.0.0.1:6379> lrange mylist 0-1
1)"Love"
2)"beijing"
3)"huajun"
4)"group"
         7)、ltrim
            保留指定key的值范围内的数据
            如:ltrim mylist 1 -1 //意思为保留mylist列表中的从下标为1的开始到结尾的全部保留,其它的删除
127.0.0.1:6379> lrange mylist 0-1
1)"Love"
2)"beijing"
3)"huajun"
4)"group"
127.0.0.1:6379> ltrim mylist 0-1//相当于没有删除任何元素
OK
127.0.0.1:6379> lrange mylist 0-1
1)"Love"
2)"beijing"
3)"huajun"
4)"group"
127.0.0.1:6379> ltrim mylist 1-1
OK
127.0.0.1:6379> lrange mylist 0-1//将下标为0的删除
1)"beijing"
2)"huajun"
3)"group"
        8)、lpop
            从list的头部删除元素,并返回删除元素
            如:
127.0.0.1:6379> lrange mylist 0-1
1)"hello"
2)"world"
127.0.0.1:6379> lpop mylist
hello
127.0.0.1:6379> lrange mylist 0-1
world
    9)、rpop
        从list的尾部删除元素,并返回删除元素
127.0.0.1:6379> rpush mylist a b c
(integer)1
127.0.0.1:6379> lrange mylist 0-1
1)"a"
2)"b"
3)"c"
127.0.0.1:6379> rpop mylist
c
127.0.0.1:6379> lrange mylist 0-1
1) a
2) b
    10)、rpoplpush
        从第一个list的尾部移除元素并添加到第二个list头部
127.0.0.1:6379> lrange mylist 0-1
1)"huajun"
2)"hello"
3)"world"
127.0.0.1:6379> rpush mylist2 redis
(integer)1
127.0.0.1:6379> lrange mylist2 0-1
1)"redis"
127.0.0.1:6379> rpoplpush mylist mylist2
"world"
127.0.0.1:6379> lrange mylist 0-1
1)"huajun"
2)"hello"
127.0.0.1:6379> lrange mylist2 0-1
1)"world"
2)"redis"
    11)、lindex
        返回名称为key的list中index位置元素(index代表列表中的索引值)
lrange mylist 0-1
1)"three"
2)"foo"
lindex mylist 0
three
lindex mylist 1
foo
    12)、llen
        返回key对应的list的长度(相当于php中count()函数。返回数组的元素个数)
lrange mylist 0-1
1)"one"
2)"two"
3)"three"
llen mylist
(integer)3
webphp
粉丝 1
博文 92
码字总数 92338
作品 0
海淀
程序员
私信 提问
加载中
请先登录后再评论。

暂无文章

opencv学习笔记2:图像处理基础

学习笔记 来源于淘宝的一个视频,记录下学习笔记。 图像由像素组成: 任何一个图,有很多点构成,每一个点,我们管它叫像素。 如图,左边图和右边图时同一个事物。不同点是左边点比较大,右边...

osc_4b2ephd0
29分钟前
10
0
搭配MySQL与MySQL搭配使用的最佳排序规则是什么? [关闭] - What is the best collation to use for MySQL with PHP? [closed]

问题: I'm wondering if there is a "best" choice for collation in MySQL for a general website where you aren't 100% sure of what will be entered? 我想知道对于一般网站而言,MySQL......

技术盛宴
31分钟前
7
0
NNIE-lite 为算法工程师而生

《NNIE-lite》   趟过NNIE的小伙伴可能都知道,NNIE是有很多坑的,而且是纯C的环境,除非你有几年C的开发经验,否则阅读起来不是那么容易的,而作为算法工程师,我相信更多人和我一样擅长P...

osc_jpwyxabk
31分钟前
23
0
ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片

     本文介绍的是ECCV 2020 Oral论文《Invertible Image Rescaling》,论文作者来自北大、微软亚洲研究院和多伦多大学。   作者 | 郑书新   编辑 | 丛 末      论文地址:https...

osc_qheq8wav
32分钟前
15
0
投稿、接收双Double,史上最火ECCV你中了么?

     作者 | 蒋宝尚   编辑 | 丛 末   经历了程序主席一度失联,线上线下两难抉择的ECCV 2020终于迎来了放榜。据官方邮件介绍,这届会议 共收到5025份有效投稿,共接收1361篇,录取率...

osc_ssnt89cw
33分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部