小蚂蚁学习Redis笔记(5)——Redis数据类型之list类型

Redis之lists类型以及操作

list是一个链表结构,主要功能是push、pop,获取一个范围的所有值等等。操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,也可以作为队列。

栈和队列的特性    栈:先进后出;队列:先进先出。

1.    lpush    为链表的头部添加字符串元素

格式:    lpush    mylist1    "allen"

含义:在链表mylist1中,从头部添加一个元素allen

2.    lrange    列出链表中的元素

格式:    lrange    mylist1    0    -1

含义:    列出链表mylist1中,从第一个到最后一个元素。0,表示从头开始的第一个元素。-1,表示尾部的第一个元素,整个的意思就是从头取到尾。

3.    rpush    从尾部压入元素

格式:    rpush    mylist1    “age”

含义:    为链表mylist1,从尾部压入一个元素age。

ps:切记一点,指向头的方向为前。

4.    lset    设置list中指定下标的元素值。

格式:    lset    mylist1    0    “frank”

含义:    为链表mylist1,下标为0的元素,值修改为frank。

注意:    下标是从头开始的。成功返回OK,下标不存在:(error) ERR index out of range

5.    lrem    从链表中删除N个和给定值一样的元素。

格式:    lrem    mylist1    2    allen

含义:    从链表mylist1中,删掉2个值为allen的元素。

注意:    是从头部依次往下删除的。删除成功:返回删除掉的个数;删除失败返回0。

注意的注意:    如果n小于0,表示从尾部开始删除;n=0,代表全部删除。

6.    ltrim    保留指定key的值范围内的数据。

格式:    ltrim    mylist1    1    2

含义:    保留链表mylist1中下标1到下标2之间的所有元素,这个区间之外的元素都删掉了。

注意:    这是保留其中的数据,不在其中的就会删掉。删除成功返回OK。如果下标不存在,就会把整个链表清空。

7.    lpop    从头部弹出一个元素

格式:    lpop    mylist1

含义:    从链表mylist1的头部弹出一个元素。返回值是弹出元素的值。

8.    rpop    从尾部弹出一个元素

格式:    rpop    mylist1

含义:    从链表mylist1的尾部弹出一个元素。返回值是弹出元素的值。

9.    rpoplpush    从第一个list的尾部弹出一个元素,然后添加到第二个list的头部。

格式:    rpoplpush    mylist1    mylist2

含义:    从链表mylist1的尾部弹出一个元素,然后添加到第二个链表mylist2的头部。

举例:

127.0.0.1:6379> LRANGE mylist1 0 -1

1) "age"

2) "allen"

127.0.0.1:6379> LRANGE mylist2 0 -1

1) "sex"

127.0.0.1:6379> rpoplpush mylist1 mylist2

"allen"

127.0.0.1:6379> LRANGE mylist1 0 -1

1) "age"

127.0.0.1:6379> LRANGE mylist2 0 -1

1) "allen"

2) "sex"

由例子同时可以知道,返回值是弹出的那个值。

10.    lindex    指定下标,返回对应的元素。

格式:    lindex    mylist2    2

含义:    把链表2中下标为2的元素返回。

11.    llen    返回链表中元素的个数。

格式:    llen    mylist2

含义:    查看链表mylist2中的元素个数。

学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog

时间: 2024-09-30 20:50:22

小蚂蚁学习Redis笔记(5)——Redis数据类型之list类型的相关文章

Redis (非关系型数据库) 数据类型 之 String类型

Redis 一个内存数据库,通过 Key-Value 键值对的的方式存储数据.由于 Redis 的数据都存储在内存中,所以访问速度非常快,因此 Redis 大量用于缓存系统,存储热点数据,可以极大的提高网站的响应速度. Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型. String 子串类型 常用基本操作 1.set  键  值     # -----

Redis的6种数据类型

Redis支持六种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)和基数(HyperLogLog). String(字符串) string 是 redis 最基本的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 redis 的 string 可以包含任何数据.比如jpg图片或者序列化的对象. string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 5

点滴记录——学习Redis笔记

转载请说明出处:http://blog.csdn.net/cywosp/article/details/39701409 Redis 默认端口6379 Redis适用场景 1. 取最新N个数据的操作 2. 排行榜应用,取TOP N操作 3. 需要精确设定过期时间的应用 4. 计数器应用 5. Uniq操作,获取某段时间所有数据排重值 6. 实时系统,反垃圾系统 7. Pub/Sub构建实时消息系统--消息的发布与订阅 8. 构建队列系统 9. 缓存 Redis数据类型 Strings类型及操作

(一)Redis笔记——简介 、key 、数据类型

1.  Redis是什么.特点.优势 Redis是一个开源的使用C语言编写.开源.支持网络.可基于内存亦可持久化的日志型.高性能的Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String).哈希(Map). 列表(list).集合(sets) 和 有序集合(sorted sets)等类型. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的

「Redis 笔记」数据类型

REmote DIctionary Server(Redis),一个 key-value 存储系统. 数据类型 Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). string string 类型是二进制安全的.意思是 redis 的 string 可以包含任何数据.比如 jpg 图片或者序列化的对象. string 类型是 Redis 最基本的数据类型,一个键最大能存储 512MB. 相关命令:

redis笔记(一)-string数据类型

一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的Value最多可以容纳的数据长度是512M. 二.相关命令列表: 命令原型                                            时间复杂度             返回值 命令描述 APPEND key value O(1) 追加后Value的长度 如果该Key已

redis学习(二)——String数据类型

一.概述 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的Value最多可以容纳的数据长度是512M. 二.相关命令 1.赋值命令 命令原型:SET key value 时间复杂度:O(1) 命令描述:设定该Key持有指定的字符串Value,如果该Key已经存在,则覆盖其原有值. 返回值:总是返回"OK". 2.取值命令 命令原型:GET key

Redis学习笔记~StackExchange.Redis实现分布式Session

回到目录 对于多WEB的环境现在已经是必须的了,很难想像一台WEB服务器面对百万并发的响应,所以,我们需要多台WEB服务器集群合作,来缓解这种高并发,高吞吐的场景,而对于多WEB的场景又会有个问题出现,即session存储的问题,如一个用户登陆后,把一个状态信息存储到当前WEB服务器的session里,而你请求其它页面时,很可能就被路由到另一台服务器了,这时,session也就丢了,而对于这种情况,有人把redis这个存储中间件想了起来,对它进行了封装,就有了今天基于redis的session共

Redis缓存技术学习系列之邂逅Redis

??作为一个反主流的开发者,在某种程度上,我对传统关系型数据库一直有点"讨厌",因为关系型数据库实际上和面向对象思想是完全冲突的,前者建立在数学集合理论的基础上,而后者则是建立在软件工程基本原则的基础上.虽然传统的ORM.序列化/反序列化在一定程度上解决了这种冲突,但是软件开发中关于使用原生SQL语句还是使用ORM框架的争论从来没有停止过.可是实际的业务背景中,是完全无法脱离数据库的,除非在某些特定的场合下,考虑到信息安全因素而禁止开发者使用数据库,在主流技术中数据库是一个非常重要的组

Redis系列(2)之数据类型

Redis系列(2)之数据类型 <Redis系列(1)之安装>中介绍了Redis支持以下几种数据类型,那么本节主要介绍学习下这几种数据类型的基本操作 字符串类型,string 散列类型,hash 列表类型,list 集合类型,set 有序集合类型,zset 1. 字符串类型 赋值与取值 SET 与 GET. 当键不存在时候返回为空. 1 127.0.0.1:6379> set key hello 2 OK 3 127.0.0.1:6379> get key 4 "hell