Redis-5-列表与集合的一些常用命令

Redis-5-列表与集合的一些常用命令,第1张

前文中,介绍了String数据类型的一些常用的命令,那么下面来看一下一些针对列表与集合的常用命令

列表是Redis中另外一种数据类型,下面我们来看看列表中一些基本的 *** 作命令

语法如下:

将一个或多个值插入到列表key的表头,如果有多个value,则会按从左到右的顺序依次插入表头,具体使用如下:

来看一下上面的命令,我在第一次执行的时候,报了一个错,因为我们之前k1对应的值不是一个list,就会报错.

第二点,lpush命令的返回值是push *** 作后的list的长度,如上面,我第一次push了3个value进去, 长度就是3,然后又加了两个.那长度就是5

返回列表key中的指定 区间内的元素,区间以偏移量start和stop指定,start和stop都以0开始,即0代表第一个元素,1代表第二个元素... 以此类推,也可以使用负数作为下标,以-1表示列表的最后一个元素,-2表示倒数第二个元素.... 以此类推,具体使用如下:

rpush和lpush的功能基本一致,只不过rpush中,value是按照从右到左的顺序依次插入的,使用如下:

rpop命令,可以移除列表中最后一个元素,并且返回该元素的值,使用如下:

lpop和rpop类似,只不过移除的是列表中的第一个元素,使用如下:

lindex命令,可以返回指定下标对应的元素的值,可以用正数下标,0表示第一个元素,也可以用负数下标, -1表示最后一个元素,使用如下:

ltrim命令,可以对一个列表进行修剪,需要指定一个下标开始值和结束值, 不在这个区间的元素都会被删除掉, 下标的取值和上面都一样的,使用如下:

BLPOP是阻塞式列表的d出原语,blpop是lpop的阻塞版本

当给定列表内,没有任何元素可以供d出的时候,连接将被blpop命令阻塞, 当 给定的是多个key时,按参数key的先后顺序依次检查各个列表,d出一个非空列表的第一个元素

使用这个命令的时候,需要指定阻塞的时长,单位是秒,如果在规定时间内没有元素可供d出,则阻塞结束,返回结果是key-value的组合,具体使用如下:

来看一下上面的命令,最开始集合是有三个元素的,然后每次给定阻塞时长是5秒,d出第一个元素,然后一共执行三次,列表中也就没有元素了,这时候,执行第四次d出的 *** 作,就可以看到,这里阻塞了5秒中之后,发现,还是没有可以d出的元素,然后就阻塞结束,返回nil了

接下来看一些针对集合的 *** 作命令

sadd命令,可以添加一个或多个指定的member元素到集合的key中, 如果值在这个集合中存在的话就忽略掉,如果集合key不存在就先新建集合,然后添加member元素到集合,具体使用如下:

第一个命令添加了v1,v2,然后下面又去添加v2,是直接被忽略掉了,已经存在的元素不会被加进去, 这里的返回值是新添加到集合里的元素的数量,不包括已经存在于集合中的元素

srem命令可以在key集合中移除指定的元素,如果指定的元素不存在,则忽略,如果key集合不存在,则被视为一个空的集合,返回0,使用如下:

sismember可以返回指定的值,是不是这个key里面的成员 ,使用如下:

v3是不在k1这个集合中的, 所以返回0 , v2存在,就返回1

scard 命令可以返回指定集合中的元素的数量,如下:

可以看到,最开始元素的数量是1,然后添加一个元素进去,再查一下就是2了.

smember命令,可以返回指定key集合中的所有元素,如下:

srandmember命令,传入key的名称,然后会随机返回key集合中的一个元素,从redis2.6开始,这个命令可以指定返回元素的个数(count)

count参数详解:

如下:

spop命令和srandmember类似,不同的是 spop每次返回的元素都会被从这个集合中移除掉,如下:

sdiff用来取两个集合的差集,如下:

sdiffstore和sdiff命令基本一致,不同的是会把返回的结果保存在一个新的集合中,使用如下:

sinter命令,用来计算指定集合的交集,如下:

sinterstore命令,和上面的sinter类似,但是会把返回值保存到一个新的集合中,如下:

用来计算集合的并集,如下:

sunionstore和sunion类似,但是会把返回结果保存在一个新的集合中,如下:

关于list和set的一些常用命令就说这么多,主要就是一些添加,删除,交集并集差集的 *** 作

string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。

范例:<?php

$redis = new redis()

$redis->connect('127.0.0.1', 6379)

$result = $redis->get('test')

var_dump($result) //结果:string(11) "11111111111"

?>

1.创建zset集合

命令:zadd zset(集合名字) v1 k1 v2 k3 v3 k3

2.查看zset集合

命令:zrange zset(集合名字)0 -1

limit 2 2

7.zrevrangebyscore (倒序排序)

(rev(表示reverse[反转的意思])) 和zrangebyscore用法相似

注意:zrevrangebyscore 它的范围是反向排序,所以范围值为 100 0,而不是0 100


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11627823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存