文档章节

Redis数据库list类型

webphp
 webphp
发布于 2017/07/26 11:28
字数 1146
阅读 9
收藏 0
点赞 0
评论 0

一、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
博文 91
码字总数 91650
作品 0
海淀
程序员
ITOO---“秒杀”选课之Redis序列化

1.我的选课 在进行选课活动中了为了尽量减少客户端和数据库的连接次数,在实现的思路是这样设计的:客户端的请求优先访问Redis缓存空间,如果Redis中没有则从数据库中加载,并添加到Redis中。...

mengdonghui123456
2017/08/06
0
0
不会这门技术也想年薪百万?Redis内存数据库知识精讲

     内存数据库   1. Redis产生背景   随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量,这个时候就需要一种能够快速存取数据的组...

大数据头条
2017/12/13
0
0
Redis数据类型及应用场景-加米谷大数据

一、 redis 特点 所有数据存储在内存中,高速读写 提供丰富多样的数据类型:string、 hash、 set、 sorted set、bitmap、hyperloglog 提供了 AOF 和 RDB 两种数据的持久化保存方式,保证了 ...

加米谷大数据
04/25
0
0
Redis 数据类型及应用场景

一、 redis 特点 所有数据存储在内存中,高速读写 提供丰富多样的数据类型:string、 hash、 set、 sorted set、bitmap、hyperloglog 提供了 AOF 和 RDB 两种数据的持久化保存方式,保证了 ...

waterandair
2017/11/29
0
0
redis入门笔记(1)

Redis 简介 Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。Redis的键值可以包括字符串(strings)类型,同时它还包...

引鸩怼孑
2016/05/04
139
0
redis源码分析之内存布局

介绍 众所周知,redis是一个开源、短小、高效的key-value存储系统,相对于memcached,redis能够支持更加丰富的数据结构,包括: 字符串(string) 哈希表(map) 列表(list) 集合(set) ...

wangdy
2016/07/05
6
0
Resid 学习笔记1-基础命令

Redis是一种nosql数据库,它是非关系型数据库,是一种key-value数据库。它支持的数据类型有,String ,list , set, sorted list和hash。redis的数据是放在内存中的,有较高的读写效率,可以每...

beibugulf
2016/10/12
7
0
Redis学习笔记之基础知识(三)

Redis是什么、特点、优势 Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,...

残风vs逝梦
2016/08/07
22
0
redis和其他缓存数据库的区别

Redis 与其他 key - value 缓存产品有以下三个特点: (1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 (2)Redis不仅仅支持简单的key-val...

码上青天
05/03
0
0
Redis高级功能整理笔记

1、Redis支持的数据类型 String类型:字符串类型是二进制文件,可以将图片和视频存入到string中,string类型支持incr操作,可以用做统计计算 List类型:列表是指key对应的value是一个双向链表...

RitaChen
2016/11/18
11
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mybaitis 通过Mapping 实现多表查询

1.实体类 1.1 用于做多表查询的类 public class CustomerCard { private Integer id;//主键 private String cardNumber; private Integer customerId;//用户id private String customerName;......

kuchawyz
9分钟前
0
0
Java语言学习(八):集合类框架

Java中提供了各种数据集合类,这些类主要用于保存复杂结构的数据。下面将介绍常用的几种集合类的用法。 ArrayList集合可以看做一个动态的数组,比普通数组更加灵活,更适合保存未知数量的数据...

海岸线的曙光
10分钟前
0
0
SpringBoot下Redis相关配置是如何被初始化的

参考网页 SpringBoot集成Redis的原理 https://blog.csdn.net/hry2015/article/details/74276423 https://blog.csdn.net/hry2015/article/details/75451705 application.yml配置文件中的属性是......

karma123
11分钟前
1
0
数据库事务的四大特性以及事务的隔离级别

本篇讲述数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是...

Java大蜗牛
18分钟前
0
0
Spring Boot 整合 MyBatis/通用Mapper/PageHelper分页插件

整合MyBatis 整合通用Mapper 1. POM依赖配置 <properties><mapper.starter.version>2.0.3-beta1</mapper.starter.version></properties><!-- 通用Mapper --><dependency><groupId>t......

OSC_fly
27分钟前
0
0
CentOS7 双网卡绑定

环境 操作系统 CentOS7.5,禁用 NetworkManager 服务 网卡 eth0 网卡 eth1 绑定网卡 bond0 网卡 eth0 配置 修改 /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=EthernetBOOTPROTO=noneD......

Colben
28分钟前
0
0
zk实战--rpc框架集群化

在看此篇内容时需要浏览下面内容 netty实战--手写rpc框架 前文功能简介以及功能扩充 利用netty来实现一个点对点的rpc调用。客户端和服务端都是靠手写地址进行socket同学的,无法1对多,也无法...

xpbob
45分钟前
12
0
springboot 发送邮件

获取授权码 添加配置 # 账号和密码spring.mail.username=aaa@qq.comspring.mail.password=bbb# 服务器地址spring.mail.host=smtp.qq.comspring.mail.properties.mail.smtp.ssl.en...

阿豪boy
45分钟前
0
0
如何使用GNU Ring?

文章名:如何使用GNU Ring? 作者:冰焰火灵X 1079092922@qq.com 文章许可:CC BY-SA 4.0 ##1. 安装 下载GNU Ring 点击左边选择你的系统版本(这里以 GNU/Linux 为例,我使用的是Mint 18.3)...

ICE冰焰火灵X
48分钟前
4
0
深入理解springMVC

什么是spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而...

Java填坑之路
54分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部