Redis系列(五)、数据类型之无序集合Set

目录

介绍

命令行模式

交集

并集

差集

应用场景


Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。

相关内容:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

Redis系列(三)、数据类型之哈希Hash

Redis系列(四)、数据类型之列表List

------------------------Redis无序集合类型----------------------

介绍

Redis 的 Set 是 string 类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

命令行模式

进入命令行模式:

redis-cli -a password_value
 
redis-cli -a password_value --raw
--raw 避免中文显示乱码

help

使用下面的命令查看手册:

help @set

sadd

给集合内新增成员,若集合不存在则创建集合并新增成员:

SADD key member [member ...]

srem

从集合中删除指定的成员,返回删除的个数:

SREM key member [member ...]

smove

SMOVE source destination member

smembers

查看集合中所有的成员: 

SMEMBERS key

 

scard

返回集合中成员的个数 :

SCARD key

srandmember

 从集合中随机返回指定个数的成员:

SRANDMEMBER key [count]

sismember

判断对象是否是集合中的成员,返回1/0,True/False: 

SISMEMBER key member

 

spop

从集合中随机弹出一个成员,返回该成员并从集合中删除该成员: 

SPOP key

交集

sinter

取多个集合的交集,返回这些集合中共同拥有的成员:

SINTER key [key ...]

sinterstore

将多个集合的交集的结果保存为一个新的集合destination  ,返回新集合的成员个数: 

SINTERSTORE destination key [key ...]

 

并集

sunion

取多个集合的并集,相同的成员会被去重:

SUNION key [key ...]

 

sunionstore

将多个集合的并集的结果保存为一个新的集合destination ,返回新集合的成员个数: 

SUNIONSTORE destination key [key ...]

 

差集

sdiff

 取多个集合的差集,以最左边的为主集合,返回左集合中有而其他集合没有的成员:

SDIFF key [key ...]

sdiffstore

将多个集合的差集的结果保存为一个新的集合destination ,返回新集合的成员个数 : 

SDIFFSTORE destination key [key ...]

 

应用场景

  1. 抽奖:随机返回指定个数成员
  2. 共同好友:取交集
  3. 好友推荐:根据标签取交集,交集的成员个数大于某个阈值触发推荐动作

Python客户端与命令行函数基本上完全一致,篇幅太长因此不再过多的展示。

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

猜你喜欢

转载自blog.csdn.net/wsdc0521/article/details/106676670