【Redis从头学-7】Redis中的Set数据类型实战场景之用户画像去重、共同关注、专属粉丝

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:Redis从头学


在这里插入图片描述


文章目录

  • 🌟前言
  • 🌟Set数据类型分析
  • 🌟Set类型实战应用场景
    • 用户画像去重功能
      • 生活中的例子
      • 代码示例
    • 共同关注、专属粉丝
      • 生活中的例子
      • 代码示例
  • 🌟写在最后

🌟前言

之前的篇章对Redis的String、List、Hash数据类型已经做出了具体分析,并举例说明了其具体的实战场景本文就结合Set数据类型结构的特性,一起探讨其实战中的应用场景,并以社交平台中的引力签、共同关注好友、是否是某人的粉丝等等为例来展示set数据类型的特点。

🌟Set数据类型分析

Redis中的Set数据类型是一种无序、不重复的集合,它提供了高效的集合操作,例如添加、删除、判断元素是否存在等。下面对Redis Set数据类型进行一些分析:

  1. 无序性:Set中的元素是无序存储的,每次获取的顺序可能不同。这使得Set非常适合于存储不需要特定顺序的元素。
  2. 元素的唯一性:Set保证其中的元素都是唯一的,即不会存在重复的元素。当向Set中添加已经存在的元素时,新元素将被忽略。
  3. 高效的添加、删除和判断操作:Set提供了O(1)时间复杂度的添加、删除和判断元素是否存在的操作。这归功于Redis内部使用了哈希表来实现Set数据类型。
  4. 集合运算:Redis的Set数据类型支持集合运算,例如交集、并集、差集等操作。可以对多个Set进行集合运算,方便进行数据分析和处理。
  5. 存储大量的元素:Set可以存储大量的元素,并且在数量上没有明确的限制。这使得Set非常适用于需要存储和处理大型集合的场景。

🌟Set类型实战应用场景

Set常用于存储用户标签、好友列表、点赞列表、投票系统等场景。它可以快速判断元素是否存在,进行集合运算,满足各种实时数据处理的需求。

总而言之,Redis的Set数据类型提供了高效、灵活且功能强大的集合操作,适用于需要存储和处理无序且不重复元素的场景。它在实时数据分析、用户关系管理等方面具有广泛的应用。

用户画像去重功能

生活中的例子

比如说交友平台的用户标签,以Soul平台为例或者王者荣耀中的赛季标签等等。
在这里插入图片描述

代码示例

利用set数据类型无序且元素不可重复的特点。通过members API来取出所有的用户画像并自动的进行去重。

@Test
void userProfile(){BoundSetOperations operations=redisTemplate.boundSetOps("user:tagg:1");operations.add("car","student","rich","dog","dog");Set<String> set=operations.members();System.out.println("此用户画像为"+set);
}

运行结果:
此用户画像为[car, dog, rich, student]

共同关注、专属粉丝

生活中的例子

类似于抖音或者小红书上经常会在推荐或者可能认识的人中,会有灰色字体提示你们共同关注、共同好友、是否是你粉丝等等。
在这里插入图片描述

代码示例

通过其差集、交集、并集来实现集合间的运算命令来实现共同关注、专属粉丝等功能,以及isMember来判断是否是某人的粉丝。

@Testvoid testSocial(){BoundSetOperations lzOperations=redisTemplate.boundSetOps("user:lz");lzOperations.add("A","B","C","E");System.out.println("老甄的粉丝"+lzOperations.members());BoundSetOperations llOperations=redisTemplate.boundSetOps("user:ll");llOperations.add("A","F","C","E");System.out.println("老李的粉丝"+llOperations.members());//差集Set lz=lzOperations.diff("user:ll");System.out.println("老甄专属粉丝"+lz);Set ll=llOperations.diff("user:lz");System.out.println("老李专属粉丝"+ll);//交集Set interSet=lzOperations.intersect("user:ll");System.out.println("同时关注"+interSet);//并集Set unionSet=lzOperations.union("user:ll");System.out.println("两个人的并集"+unionSet);//是否是某人粉丝boolean flag=lzOperations.isMember("A");System.out.println("A是否是老甄的粉丝"+flag);
}

运行结果:
老甄的粉丝[A, C, E, B]
老李的粉丝[A, C, E, F]
老甄专属粉丝[B]
老李专属粉丝[F]
同时关注[A, C, E]
两个人的并集[C, F, E, B, A]
A是否是老甄的粉丝true

🌟写在最后

有关于Redis中的Set数据类型实战应用场景到此就结束了。功能演示代码的逻辑简单,目的是理解Set数据类型的应用,实际场景的逻辑根据具体需求而定。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论或者有什么其他场景也可以在评论区提出。


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/47428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab使用教程(20)—插值基础

1.网格和散点样本数据 插值是在位于一组样本数据点域中的查询位置进行函数值估算的方法。函数值是根据最接近查询点的样本数据点计算的。MATLAB 根据样本数据的结构&#xff0c;可以执行两种插值。样本数据可以形成网格&#xff0c;也可以是分散的。 网格化的样本数据使得插值…

Matlab使用

Matlab使用 界面介绍 新建脚本&#xff1a;实际上就是新建一个新建后缀为.m的文件 新建编辑器&#xff1a;ctrlN 打开&#xff1a;打开最近文件&#xff0c;以找到最近写过的文件 点击路径&#xff0c;切换当前文件夹 预设&#xff1a;定制习惯用的界面 常见简单指令 ;…

十亿次实验,用概率解读周易大衍筮法的奥秘

还记得封神电影里的文王占卜吗&#xff1f; 也就是著名的大衍筮法。 《易传》曰&#xff1a;大衍之数五十&#xff0c;其用四十有九。分而为二以象两&#xff0c;挂一以象三&#xff0c; 揲之以四以象四时&#xff0c;归奇于扐以象闰&#xff0c;五岁再闰&#xff0c;故再扐而…

解决云服务连接时长过短,不到一会儿自动断开

我们在使用xshell或者FinalShell连接云服务器操作时&#xff0c;总是十分钟就自动断开&#xff0c;很烦&#xff0c; 下面我们设置一下&#xff0c;让他可以使用很长时间&#xff08;需要有一定的linux命令的基础&#xff09; cd /etc/ssh 进入到ssh这个目录&#xff0c;查看…

k8s ingress

一、浅谈ingress &#xff08;ingress 是与service配合使用的&#xff09; Ingress能把Service&#xff08;Kubernetes的服务&#xff09;配置成外网能够访问的URL&#xff0c;流量负载均衡&#xff0c;及SSL&#xff0c;并提供域名访问的虚拟主机等&#xff0c;客户通过访问UR…

万界星空科技/免费MES系统/免费质量检测系统

质量管理也是万界星空科技免费MES中的一个重要组成部分&#xff0c;旨在帮助制造企业实现全面的质量管理。该系统涵盖了供应商来料、生产过程、质量检验、数据分析等各个环节&#xff0c;为企业提供了一站式的质量管理解决方案。 1. 实时质量监控 质量管理能够实时监控生产过程…

【使用 k 折叠交叉验证的卷积神经网络(CNN)】基于卷积神经网络的无特征EMG模式识别研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

攻防世界-warmup

原题解题思路 只有一张图片&#xff0c;就查看源代码&#xff0c;有一个source.php。 查看source.php&#xff0c;白名单中还有一个hint.php。 hint.php告诉我们flag的位置ffffllllaaaagggg 但是直接跳转是没用的&#xff0c;构造payload。 http://61.147.171.105:55725/sourc…

JS逆向-某招聘平台token

前言 本文是该专栏的第56篇,后面会持续分享python爬虫干货知识,记得关注。 通常情况下,JS调试相对方便,只需要chrome或者一些抓包工具,扩展插件,就可以顺利完成逆向分析。目前加密参数的常用逆向方式大致可分为以下几种,一种是根据源码的生成逻辑还原加密代码,一种是补…

阿里云使用WordPress搭建个人博客

手把手教你使用阿里云服务器搭建个人博客 一、免费创建服务器实例 1.1 点击试用 点击试用会需要你创建服务器实例&#xff0c;直接选择默认的操作系统即可&#xff0c;点击下一步 1.2 修改服务器账号密码 二、创建云数据库实例 2.1 免费获取云数据库使用 2.2 实例列表页 在…

PHP自己的框架实现debug调试模式和时区(完善篇三)

1、实现效果通过config设置开关debug调试模式 2、debug调试模式设置和时区设置 error_reporting和display_errors点击查看详细讲解 public static function run(){//定义常量self::_set_const();//创建模块目录self::_mk_module();//加载文件self::_import_file();self::_set_…

LVS+Keepalived集群

目录 Keepalived Keepalived概述 Keepalived 工作原理 主要模块及其作用 LVSKeepalived 高可用群集搭建 所需服务器 配置负载调度器 配置keeplived 启动 ipvsadm 服务 调整 proc 响应参数&#xff0c;关闭Linux 内核的重定向参数响应 配置节点服务器 测试验证 Keepa…

交换机生成树STP

生成树协议&#xff08;spanning-tree-protocol,stp&#xff09;&#xff1a;在具有物理环路的交换机网络上生成没有回路的逻辑网络的方法&#xff0c;生成树协议使用生成树算法&#xff0c;在一个具有冗余路径的容错网络中计算出一个无环路的路径&#xff0c;使一部分端口处于…

VR全景加盟项目如何开展?如何共赢VR时代红利?

VR全景作为一个新兴蓝海项目&#xff0c;相信有着很多人刚接触VR行业的时候都会有这样的疑问&#xff1a;VR全景加盟后项目如何开展&#xff1f;今天&#xff0c;我们就从项目运营的三个阶段为大家讲解。 一、了解项目时 目前VR全景已经被应用到各行各业中去&#xff0c;学校、…

变压器故障诊断(python代码,逻辑回归/SVM/KNN三种方法同时使用,有详细中文注释)

视频效果&#xff1a;变压器三种方法下故障诊断Python代码_哔哩哔哩_bilibili代码运行要求&#xff1a;tensorflow版本>2.4.0,Python>3.6.0即可&#xff0c;无需修改数据路径。 1.数据集介绍&#xff1a; 采集数据的设备照片 变压器在电力系统中扮演着非常重要的角色。…

Ubuntu20.04安装SNMP服务

在线安装snmp 1.安装snmp服务 sudo apt-get install updatesudo apt-get install snmp snmpd snmp-mibs-downloader2.重启SNMP服务 sudo /etc/init.d/snmpd restart3.查看snmp配置 sudo grep -Ev ^$|^# /etc/snmp/snmpd.conf 离线安装SNMP &#xff08;重要&#xff09; 我…

Django基础1——项目实现流程

文章目录 一、前提了解二、准备开发环境2.1 创建项目2.1.1 pycharm创建2.1.2 命令创建 2.2 创建应用 例1&#xff1a;效果实现例2&#xff1a;网页展示日志文件 一、前提了解 基本了解&#xff1a; 官网Django是Python的一个主流Web框架&#xff0c;提供一站式解决方案&#xf…

8.部署项目

项目地址&#xff1a;RuoYi-Cloud-Plus: 项目正式入驻 dromara 开源社区 迁移地址: https://gitee.com/dromara/RuoYi-Cloud-Plus 1.获取源码 需要有gitee账户 先把源码fork到自己的仓库中 需要多等待一段时间 勾选对应的环境 构建项目 2.sql导入 将sql导入到与sql文件名…

# 电脑好用的工具推荐

电脑好用的工具推荐 文章目录 电脑好用的工具推荐必装工具浏览器火绒安全卸载工具Geek迅雷 记笔记工具Typora印象笔记 开发工具IntelliJ IDEAVisual Studio CodeDbeaverAnother Redis Desktop Manager 备份工具百度网盘阿里云盘一刻相册蓝奏云 必装工具 浏览器 就别装那些乱七…

https非对称加密算法

非对称加密算法原理 在客户端公开公钥&#xff0c;服务端保存私钥 1.客户端第一次请求先请求443端口&#xff0c;从443端口下载公钥。 2.客户端将数据进行公钥算法进行加密&#xff0c;将秘文发送到服务端 服务端收到秘文后&#xff0c;通过私钥算法进行解密得到明文数据。…