在Redis集合类型常用命令总结

介绍类型介绍

集合类型是一个类型,体现了使用价值高。因为类型的Redis集合,所以我们可以在Redis运行执行容易,差集运算,结合操作。

首先,让我们介绍集合类型和列表类型之间的区别。事实上,学习面向对象语言的学生应该能够猜出这些类型之间的区别。

(1)集合类型和表类型可以存储2 ^ 32-1字符串

(2)集合类型是无序的,列表类型是有序的。

集合类型是唯一的,列表类型的值不是唯一的。

让我们一起来看看语法。

1。增加删除元素命令


萨德的关键成员成员{…}
该成员主要成员{…}


萨德贝命令用于添加到集合中的元素,当然,基于以前的学习经验,如果设置不存在,它肯定会被自动创建。但这里需要注意的一点是,如果元素存在,那么他将忽略它并不能掩盖它的返回值。对已成功添加元素的数量(被忽略的元素是不计算)。

同样是在该命令一样,删除的元素如果存在的元素,并返回值是已成功删除元素的个数。

2。获取集合中的所有元素


Smembers的关键


三.确定元素是否在集合中。


sismember关键成员


该操作的时间复杂度为o(1)。无论集合中有多少元素,命令总是很快返回结果。存在返回1,不存在或没有此键返回0。

4、集合运算


该关键关键{…}
烧结键{键…}
众和关键关键{…}


这三个命令使Redis的伟大!

让我们从测试数据开始。


127.0.0.1:6379 >萨德毛123
(整数)3
127.0.0.1:6379 > Sadd SETB 234
(整数)3
127.0.0.1:6379 >萨德国家经贸委345
(整数)3



127.0.0.1:6379 > smembers刚毛
1)1
2)2
3)3
127.0.0.1:6379 >


(1)让我们介绍该命令,这实际上是一个差集运算。

集合A和B组之间的差异表示为AB,代表所有的元素集,属于和不属于这个命令还支持多键的引入,这意味着A和B做差集运算,并用C.


127.0.0.1:6379 >该SETA SETB
1)1
127.0.0.1:6379 >该SETB SETC
1)2
127.0.0.1:6379 >该SETA SETB SETC
1)1


(2)然后介绍了在多个集合上进行交集运算的烧结命令,为B设置A和B交集表示,属于A和B,属于集合中的元素,该命令还支持分步引入多个键和交叉操作。


127.0.0.1:6379 >烧结SETA SETB
1)2
2)3
127.0.0.1:6379 >烧结SETA SETB SETC
1)3


(3)最后介绍了联合作战指挥众和。集合A和B,是集都属于也属于它还支持多个密钥传入。


127.0.0.1:6379 > SUNION SETA SETB
1)1
2)2
3)3
4)4
127.0.0.1:6379 > SUNION SETA SETB SETC
1)1
2)2
3)3
4)4
5)5


5。获取集合中的元素数


个关键
127.0.0.1:6379 >个毛
(整数)3
127.0.0.1:6379 >害怕SETB
(整数)3


此命令用于获取集合中的元素数。不存在返回0的相同集合。

6。执行一个set操作并存储结果


sdiffstore目的关键关键{…}
sinterstore目的关键关键{…}
sunionstore目的关键关键{…}


这里,在所有的set命令都添加了一个存储之后,很明显它是存储的意思,目的地是目的地,也就是说我们要存储密钥。

例:


127.0.0.1:6379 > sunionstore集都SETA SETB SETC
(整数)5
127.0.0.1:6379 > smembers集都
1)1
2)2
3)3
4)4
5)5


7,随机访问集合中的元素


srandmember关键{数量}




这个命令用于从集合中随机获取一个元素,计数参数用于获取单词中的多个元素,它们根据计数的正和负有不同的含义。

(1)当计数为正时,获取不重复的计数元素,如果计数大于所有值的数目,则返回所有元素。

(2)当该值为负,得到|计数|元,但它可能是相同的。

事实上,这种随机不是很随机的,因为事实上,Redis的采集是散列存储结构,有兴趣的读者可以深入。


127.0.0.1:6379 > srandmember刚毛1
1)1
127.0.0.1:6379 > srandmember刚毛2
1)3
2)2
127.0.0.1:6379 > srandmember刚毛5
1)1
2)2
3)3
127.0.0.1:6379 > srandmember毛- 2
1)3
2)3


8。一个元素从集合中弹出。


提供的关键


我们也看到LPOP和农作物之前,它会弹出的列表,但设置出了点问题,所以提供的是一种随机弹出。(元素弹出,被删除,不在原集)


127.0.0.1:6379 >中毛1
1)2
127.0.0.1:6379 > smembers刚毛
1)1
2)3


让我们举一个集合的具体应用的例子。

我们有一个标签当我们存储我们的文章,我们需要使用中间表的关联时,我们是关系型数据库,但在使用,我们可以很容易的。

在本文中,我们使用一个帖子:ID标签文章重点式的收集、文章存储属于标签,所以我们需要将本身关系数据库表,标签表,中间关系表三复杂的操作台,在Redis是一个很好的协议。

有时我们需要把所有指定的标签,我们还需要添加一个类键,标签:标签名称:集类型岗位关键,集合存储在每个ID标签,所以每次我们要列出所有属于一个标签的文章也不喜欢那么多关联关系数据库表,直接通过键可以直接得到。

当我们想获得如同时java和Redis的标签的文章,我们只需要交叉标签:java:职位标签:Redis:帖子好,是不是很方便

总结

以上就是本文的全部内容。我希望它能给大家的学习或工作带来一些帮助。如果有任何疑问,你可以留言。