redis的数据类型List,其原生命令和php操作Redis List函数介绍

List类型介绍

List是简单的字符串列表,按照插入顺序排序,可以从列表的两头添加数据,一个列表最多可以包含2^32-1个元素(超过40亿个元素)

List原生命令

命令 命令描述 实例
LPUSH key value1 [value2] 此命令将一个或多个值插入到列表的头部;如果列表不存在,则创建一个空列表,然后执行LPUSH操作;如果有错误则返回一个错误,成功返回列表的长度 LPUSH list1 "foo" 返回:1;LPUSH list1 "hear":返回2
LPUSHX key value 将值value插入到列表key的头部,若列表不存在时操作无效,插入失败;成功则返回列表的长度 LPUSHX list1 "head";LRANGE list1 0 -1,返回:“head”,‘hear’,‘foo’
RPUSH key value1 [value2] 添加一个或多个值到列表尾部,如果key不存在则先创建空列表,然后执行RPUSH操作,成功则返回列表长度 RPUSH list1 ‘foot‘;LRANGE list1 0 -1,返回:“head”,‘hear’,‘foo’,‘foot’
RPUSHX key value 将value值插入到已存在的列表key的尾部,如果列标配key不存在,则操作无效,插入失败;存在则返回列表的长度 RPUSHX list1 ‘jkl‘;获取列表的值jkl在列表尾部
LPOP key 移除列表key的第一个元素,并返回该元素 LPOP list1,返回‘head’;LRANGE list1 0 -1,返回:‘hear’,‘foo’,‘foot’,‘jkl’
RPOP key 移除列表的最后一个元素,并返回该元素 RPOP list1,返回:‘jkl’;LRANGE list1 0 -1,返回:‘hear’,‘foo’,‘foot’
BLPOP key1 [key2] timeout 移出并获取列表的第一个元素,如果列表没有元素则会阻塞列表,直到等待时间超时或有元素可弹出为止。如果列表为空,则返回nil;否则返回一个含有两个元素的列表,第一个元素是被弹出的元素的key,另一个是被弹出元素的值。如果有多个key,则返回第一个非空列表的头元素;如果所有列表为空或者不存在,则会阻塞列表,直到等待时间超时或有列表不为空为止 BLPOP list1 100,返回"list1", "hear";BLPOP list2 30,返回nil,30.52s;
BRPOP key1 [key2 ] timeout 和BLPOP类似,只不过是移出最后一个元素 BRPOP list1 100,返回"list1", "kui";BLPOP list1 30,返回nil,30.58s;
LLEN key 返回列表的长度;如果列表key不存在,则列表key被认为是空列表,返回0;如果key不是列表类型,则返回一个错误 LLEN list1,返回1
LRANGE key start stop 返回列表中指定区间的元素,区间以偏移量start和stop指定;0表示第一个元素,以此类推下去;也可以用负数表示,-1表示最后一个元素,以此类推下去 LRANGE list1 0 -1,取得列表的所有值;
LREM key count value 根据参数count的值,移除列表中与参数value值相同的元素;count > 0:从表头向表尾搜索,移除count个与value值相同的元素;count < 0:从表尾向表头搜索,移除count的绝对值个与value值相同的元素;count = 0:移除表中所有与value相同的值;成功返回移除元素的个数,失败则返回0 LREM list1 2 ‘ipo‘;返回:2
LSET key index value 通过索引设置元素的值;当索引参数超出范围或者对一个空列表进行LSET操作,返回一个错误,操作成功,返回“OK” LSET list1 0 ‘lpt‘,返回Ok,将索引为0的值设为“lpt”
LTRIM key start stop 对一个列表进行修剪(trim),只留下指定区间内的元素,不在指定区间的元素都将被删除;索引0表示第一个元素,以此类推;最后一个元素的索引为-1,以此类推。执行成功返回“OK” LTRIM list1 1 2,返回“ok”
LINDEX key index 通过索引获取元素的值,索引0表示第一个元素,以此类推;-1表示最后一个元素,以此类推;index在列表的区间内则返回该索引对应的值,不在列表的区间内则返回nil LINDEX list1 9;返回:nil
LINSERT key BEFORE(AFTER) pivot value 在列表的元素前或者后面插入元素,当指定元素不存在列表中是,不做任何操作,返回 -1;当列表不存在时,视为空列表,不执行任何操作,返回 0;如果key不是列表类型,返回一个错误;执行成功将value插入到元素pivot的前面或者后面,并返回插入后列表的长度;如果存在多个pivot ,则在第一个pivot 值的前或者后面插入value LINSERT list1 before ‘tip‘ ‘mnb‘;返回6
BRPOPLPUSH source destination timeout 从列表source 中弹出一个元素,将弹出的元素插入到另外一个列表destination 中,并返回这个元素;如果列表中不存在元素,则会阻塞列表直到有可弹出元素或者等待超时;如果指定时间内没有任何元素弹出,则返回一个nil和等待时长;反之,则返回一个含有两个元素的列表,第一个元素是弹出的元素,另一个元素是等待时长 BRPOPLPUSH list1 list2 40;返回:“tip”
RPOPLPUSH source destination 移除source 列表的最后一个元素,并将元素写入到destination列表中,并返回这个元素 RPOPLPUSH list1 list2

php操作redis List的函数

  • lPush(key,value)函数

    * 说明:此命令将一个值插入到列表的头部;如果列表不存在,则创建一个空列表,然后执行次函数;成功返回列表的长度,如果key存在但不是列表则返回false

    * 参数:key(列表名称),value(将要插入列表key的值)

    * 返回值:成功返回列表的长度,失败返回false

    * php $redis->lPush(‘list1‘, ‘bnk‘);

  • lPushx(key,value)函数

    * 说明:添加value到列表key的头部(left),如果key存在的话

    * 参数:key(列表名称),value(将要插入的值)

    * 返回:成功返回列表的长度,失败则返回false

    * php $redis->lPushx(‘list1‘, ‘ujn‘);

  • rPush(key,value)函数

    * 说明:将value值添加到列表key的尾部(right),如果key不存在,则新建key然后将value插入到key中;如果key存在但不是list类型,则返回false

    * 参数:key(列表名称),value(将要插入的值)

    * 返回:成功则返回列表的长度,失败则返回false

    * php $redis->rPush(‘list1‘, ‘lgh‘);

  • rPushX(key,value)函数

    * 说明:将value值插入到key的尾部(right),失败返回false

    * 参数:key(列表名称),value(将要插入的值)

    * 返回:成功则返回列表长度,失败则返回false

    * php $redis->rPushX(‘list1‘, ‘lfr‘);

  • lPop(key)函数

    * 说明:返回并移除列表key头部的第一个元素(从左到右)

    * 参数:key(列表名称)

    * 返回:执行成功返回列表key头部的第一个元素;失败或者空列表返回false

    * php $redis->lPop(‘list1‘);

  • rPop(key)函数

    * 说明:返回并删除列表key尾部的第一个元素

    * 参数: key(列表的名称)

    * 返回:成功则返回列表key尾部的第一个元素;失败或者空列表返回false

    * php $redis->rPop(‘list1‘);

  • blPop(array,Timeout),brPop(key1,key2,...keyn,Timeout)函数

    * 说明:blPop移出并获取列表的第一个元素,如果列表没有元素则会阻塞列表,直到等待时间超时或有元素可弹出为止。如果列表为空,则返回nil;否则返回一个含有两个元素的列表,第一个元素是被弹出的元素的key,另一个是被弹出元素的值。如果有多个key,则返回第一个非空列表的头元素;如果所有列表为空或者不存在,则会阻塞列表,直到等待时间超时或有列表不为空为止;brPop()函数是移除并获取最后一个元素;两者的参数类型是通用的

    * 参数:array(由列表中的key组成的数组),Timeout(列表阻塞的等待时间)

    * 返回值:返回一个含有两个元素的列表,第一个元素是被弹出元素的key,第二个是弹出元素的值

    * php $redis->blPop(‘key1‘, ‘key2‘, 10); /* array(‘key1‘, ‘A‘) */ $redis->blPop(array(‘key1‘, ‘key2‘), 10); /* array(‘key1‘, ‘A‘) */

  • lLen(key),lSize(key)函数

    * 说明:返回列表的大小,两个函数是一样的

    * 参数: key(列表的名称)

    * 返回:如果key存在则返回key的长度;如果key不存在或者为空则返回0;如果key存在但不是list类型,则返回false

    * php $redis->lSize(‘key1‘);/* 3 */$redis->lLen(‘key1‘);/* 3 */

  • lRange(key,start,stop), lGetRange(key,start,stop)函数

    * 说明:返回列表key中指定区间[start,stop]的元素;key的第一个元素索引为0,第二个为1;最后一个为-1.倒数第二个为-2;以此类推。列个函数的作用是一样的

    * 参数:key(列表的名称),start(开始的索引),stop(结束的索引)

    * 返回:返回该区间内的元素组成的数组

    * php $redis->lRange(‘key1‘, 0, -1); /* 返回列表中所有的元素 */

  • lRem(key,value,count),lRemove(key,value,count)函数

    * 说明:删除key中等于value的元素count个;如果count>0,则从头部删除count个;count < 0,则从尾部删除|count|个;count = 0,则删除所有等于value的元素;

    * 参数:key(列表名称),value(要删除的元素值),count(要删除value的个数)

    * 返回:如果执行成功,则返回删除元素的个数,失败则返回false

    * php $redis->lRange(‘key1‘, 0, -1); /* array(‘A‘, ‘A‘, ‘C‘, ‘B‘, ‘A‘) */ $redis->lRem(‘key1‘, ‘A‘, 2); /* 2 */ $redis->lRange(‘key1‘, 0, -1); /* array(‘C‘, ‘B‘, ‘A‘) */

  • lSet(key,index,value)函数

    * 说明:为列表key中索引为index的元素赋予新值

    * 参数:key(列表名称),index(key中元素的索引),value(index元素的新值)

    * 返回:新值设置成功返回true;如果key不是list类型或者index超出key的范围则返回false;

    * php $redis->lSet(‘key1‘, 0, ‘X‘);

  • lTrim(key,start,stop),listTrim(key,start,stop)函数

    * 说明:删除指定区间之外的所有元素

    * 参数:key(列表名称),start(开始元素的索引),stop(结束元素的索引)

    * 返回:成功返回指定区间内的元素组成的数组;key不是list类型则返回false

    * php $redis->lRange(‘key1‘, 0, -1); /* array(‘A‘, ‘B‘, ‘C‘) */ $redis->lTrim(‘key1‘, 0, 1); $redis->lRange(‘key1‘, 0, -1); /* array(‘A‘, ‘B‘) */

  • lIndex(key,index),lGet(key,index)函数

    * 说明:返回列表key中指定索引的元素值,索引从头部0开始,往后类推;索引从尾部-1开始,往前类推;

    * 参数:key(列表名称),index(指定的索引)

    * 返回:成功则返回索引为index的元素值,失败则返回false

    * php $redis->lGet(‘key1‘, 0); /* ‘A‘ */ $redis->lGet(‘key1‘, -1); /* ‘C‘ */ $redis->lGet(‘key1‘, 10); /* `FALSE` */

  • lInsert(key,position Redis::BEFORE | Redis::AFTER,pivot,value)函数

    * 说明:插入value值到pivot值的前面或者后面,如果list不存在或者pivot不存在则不插入value;

    * 参数:key(列表名称),Redis::BEFORE | Redis::AFTER(前面|后面),pivot(参照值),value(要插入的元素值)

    * 返回:成功返回key的长度,失败则返回-1

    * php $redis->lInsert(‘key1‘, Redis::BEFORE, ‘C‘, ‘X‘); /* 4 */ $redis->lInsert(‘key1‘, Redis::AFTER, ‘W‘, ‘value‘); /* -1 */

  • rPopLPush(srckey,dstkey)函数

    * 说明:将srckey中的最后一个元素弹出并写入到dstkey的头部,并将这个元素返回

    * 参数:srckey(弹出最后一个元素的list),dstkey(写入元素的list)

    * 返回:成功返回弹出的这个元素,失败则返回false

    * php $redis->lPush(‘x‘, ‘abc‘); $redis->lPush(‘x‘, ‘def‘); $redis->lPush(‘y‘, ‘123‘); $redis->lPush(‘y‘, ‘456‘); var_dump($redis->rPopLPush(‘x‘, ‘y‘)); /* "abc" */ var_dump($redis->lRange(‘x‘, 0, -1)); /* "def" */ var_dump($redis->lRange(‘y‘, 0, -1)); /* "abc","456", "123" */

  • bRPopLPush(srckey,dstkey,timeout)函数

    * 说明:将srckey中的最后一个元素弹出并写入到dstkey的头部,并将这个元素返回;如果srckey中没有元素则阻塞srckey,直到srckey中有元素可弹出,或则timeout超时;和rPopLPush函数类似。

    * 参数:srckey(弹出最后一个元素的list),dstkey(写入元素的list),timeout(等待弹出元素的时间)

    * 返回:成功返回弹出的元素,失败返回false

原文地址:https://www.cnblogs.com/yu-yuan/p/9955435.html

时间: 2024-10-15 09:44:00

redis的数据类型List,其原生命令和php操作Redis List函数介绍的相关文章

Nosql技术--redis系列--redis的数据类型 及相应的命令--String类型

1:redis的官方网站地址是:http://www.redis.com 在线redis命令运行测试地址:http://try.redis.io/ 2:redis的数据类型有5种:String .Hash .Set.List.SortedSet String 类型 1)String是二进制安全的 (1):set 表示设置key和value eg :> set name lusy ok >get name lusy 注意:redis中同一个name对应的value是一样的 (2)setnx:设置

redis的数据类型String,及其命令

String类型简介 String类型存储的值类型包括:字符串,整数类型,浮点数类型,String类型的相关命令可以对字符串和整数型元素进行一定的处理. 原生命令介绍 1. SET key value:设置key的值为value:实例: SET string1 'testyyy'. 2.GET key :获取指定key的value值:实例:GET string1,返回testyyy. 3.GETRANGE key start end :返回指定key的value值的子串:实例:GETRANGE

Redis 的数据类型 - Keys 相关的命令

KEYS:返回所有符合给定模式的 key 语法:KEYS pattern *:匹配任意个字符 ?:匹配一个任意字符 []:匹配[]之间的一个字符,[b-e],a[b-e] ab ac ad ae \x:匹配特殊字符\? \* MSET one 'one' two 'two' three 'three' four 'four' five 'five' six 'six' seven 'seven' KEYS * KEYS *o* KEYS t??? KEYS ?s* KEYS c[n-z]* #c

redis学习一 (key)键,Python操作redis 键

# -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host="123.516.174.910",port=6379,password="11111608") 1. delete DEL 命令用于删除已存在的键.不存在的 key 会被忽略 print r.set('1', '4028b2883d3f5a8b013d57228d760a93') #set 设置指定

redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)

平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别 可参考:https://blog.csdn.net/yifanSJ/article/details/79513179 当然 springboot 中也可以使用Jedis ,本次记录的是 如何使用RedisTemplate

用socket操作redis

代码: $cmd = "*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nbar\r\n"; // set foo bar $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, '127.0.0.1', 6379); $flag = socket_write($socket,$cmd,strlen($cmd)); eee($flag); reids 协议采

[ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis

上一章 [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis 详细的介绍了Redis的安装步骤,那么只是安装完成,此时的Redis服务器还无法正常运作,我们需要对其进行一些配置,这个章节我们重点来讲解下如何对Redis配置文件进行配置才能顺利的启动Redis服务. 要了解Reids的配置项,我们需要先来认识一个脚本文件redis_init_script,从名字我们就能看出来,他就是Redis的初始化脚本,那么这个脚本文件长什么样子,里面有什么内容,又该怎么找到他呢?哈哈

Redis(六)-数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个键最大能存储512MB. 实例 redis

Redis的数据类型之String

Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set. Redis数据类型String string类型在redis中是最常见的类型,value存储最大数据量为512M,可以存放json数据,图像数据等等. 下面跟着敲Redis命令操作String类型数据的代码吧. redis数据写命令Set,相当于数据插入 redis 127.0.0.1:6379> set name zlh --返回值: ok,说明插入成功.如果当前name存在值则覆