
列表是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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)