个人设计网站模板,东莞餐饮网站建设,网页设计与制作课程说明,wordpress 活动报名插件个人主页 #xff1a; 个人主页 个人专栏 #xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码使用场景总结 前言… 个人主页 个人主页 个人专栏 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码使用场景总结 前言
ste集合类型是保存多个字符串类型的元素但和列表类型不同集合中元素之间是无序的元素也不允许重复。 redis除了支持集合内的增删查改操作同时支持多个集合取交集并集差集。 命令
SADD
将一个或者多个元素添加到 set 中。重复元素无法添加到 set 中 SADD key member [ member … ] 返回值本次添加成功的元素个数 时间复杂度O(1) SMEMBERS
获取一个set中所有元素。元素间的顺序是无序的获取结果的顺序是随机的 SMEMBERS key 返回值所有元素的列表 时间复杂度O(N)N为集合元素个数 注意 如果执行多次smembers命令获取结果顺序一致可能有以下原因 SISMEMBER
判断一个元素在不在 set 中 SISMEMBER key member 返回值1 表示元素在 set 中0 表示元素不在 set 中 或者 key 不存在 时间复杂度O(1)set 集合是通过哈希表来实现的 SCARD
获取一个 set 的基数即 set 中的元素个数 SCARD key 返回值set 内元素的个数 时间复杂度O(1) SPOP
从 set 中删除并返回一个或者多个元素。由于 set 内的元素是无序的所以取出哪个元素实际是未定义行为即spop删除元素就是随机删除 SPOP key [count] 返回值取出的元素 时间复杂度O(N)N为count的个数 SMOVE
将一个元素从 source 取出并放入 destrination 中 SMOVE source destrination member 返回值1 表示移动成功0 表示失败 时间复杂度O(1) SREM
将指定的元素从 set 中删除 SREM key member [member …] 返回值本次删除操作删除的元素个数 时间复杂度O(N)N为要删除的元素个数 集合间操作 SINTER
获取给定 set 的交集中的元素 SINTER key [key …] 返回值交集的元素 时间复杂度O(N * M) N是最小的集合元素个数M是最大集合的元素个数 SINTERSTORE
获取给定 set 的交集中的元素并保存到目的 set 中 SINTERSTORE destination key [key …] 返回值交集的元素个数 时间复杂度O(N * M)N是最小的集合元素个数M是最大的集合元素个数 SUNION
获取给定 set 的并集中的元素 SUNION key [key …] 返回值并集的元素 时间复杂度O(N)N给定的所有集合的总的元素个数 SUNIONSTORE
获取给定 set 的并集中的元素并保存到目的 set 中 SUNIONSTORE destination key [key …] 返回值并集的元素个数 时间复杂度O(N)N为给定的所有集合的总元素个数 SDIFF
获取给定 set 的差集中的元素 SDIFF key [ key … ] 返回值差集的元素 时间复杂度O(N)N给定的所有集合的总的元素个数 SDIFFSTORE
获取给定 set 的差集中的元素并保存到目标 set 中 SDIFFSTORE destination key [key …] 返回值差集的元素个数 时间复杂度O(N)N为给定的所有集合的总元素个数 内部编码
集合类型的内部编码有两种
intset(整数集合)当集合中的元素都是整数并且元素的个数小于 set-max-inset-entries 配置时redis会使用 intset来作为集合的内部实现intset是一种紧凑的数据结构专门用于存储整数数值通过压缩存储intset能够节省内存空间hashtable(哈希表)当集合类型无法 intset 的条件时redis会使用hashtable作为集合的内部实现hashtable允许存储各种类型的元素set集合的每个元素都作为一个字符串对象存储而对应的值则统一为nullptr 使用场景
使用 set 来保存用户的标签标签也就是用户画像分析出用户的一些特征分析清楚特征之后再投其所好使用 set 来计算用户之间的共同好友基于 “集合求交集”A 和 B是好友B 和 C是好友B 和 C 和 D都是好友就可以将D推荐给A使用 set 统计 UV(独立访客数量)每一个用户访问服务器都会产生一个 UV但是同一个用户多次访问不会是UV增加UV需要按照用户进行去重 总结
以上就是我的redis学习笔记