数据类型-set 操作随机数据| 学习笔记

简介: 快速学习数据类型-set 操作随机数据

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-set 操作随机数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13385


数据类型-set 操作随机数据

 

内容介绍

一、Set类型数据的扩展操作

二、Tips8

 

一、Set 类型数据的扩展操作

业务场景
每位用户首次使用今日头条时会设置3项爱好的内容,但是后期为了增加用户的活跃度、兴趣点,必须让用户对其他信息类别逐渐产生兴趣,增加客户留存度,如何实现?

业务分析
●系统分析出各个分类的最新或最热点信息条目并组织成set集合

●随机挑选其中部分信息
●配合用户关注信息分类中的热点信息组织成展示的全信息集合

对于现在的信息社会,对应的一些应用,比方说今日头条,微博都是在推送消息,像今日头条里的消息会给到分类,军事、股票、社会、政治、游戏、音乐、综艺等等分了很多类,在初次进入会让你选三个爱好,为了避免信息枯燥,增加客户留存度,就会尝试性去摸索你喜欢的类型,随机推一些,选一些你可能喜欢的,然后就便于增加客户留存度,提高用户黏性,使得app的利益达到最大化。

我们现在研究一下怎样去选择性的给你推送内容,如果说现在关注了三个分类,想让你关注其他的分类,首先先选出今天最热点的消息,然后放到一个set里面,然后随机挑三个,配合之前关注的三个,融合在一起,展示给你,这样就可以让你打开你喜欢的,然后接下来有针对性的去定向推送,就用这种形式来实现,这里面有一个问题,就是怎样随即操作数据我们需要去解决。

解决方案
●随机获取集合中指定数量的数据
srandmember key [count]
●随机获取集合中的某个数据并将该数据移出集合
spop key


二、Tips8

Redis应用于随即推荐类信息检索,例如热点歌单推荐,热卖新闻推荐,热卖旅游线路,应用app推荐,大V推荐等等

这就是随即操作数据的一个结构,这两个有比较大的差别,第一个是从一些集合里面随机挑选一些给你,原集跟数据不变,也就是说50个数据提取出来之后原集还是50个数据,数量不变,第二个则是50个数据提取出6个后剩下44个,他们的应用场景也是不一样的,第一种提取后下次还可以重复使用,第二个则是推过的就不再推了,接下来进行操作。

先进行构造,sadd news n1,sadd news n2,sadd news n3,sadd news n4,初始化四个数据,然后随机取出,srandmember news 1,取出一个n2,再次取出,srandmember news 1,取出n4,然后查看原始数据有没有变化,scard news,原数据还是4个,

接下来多个取出,srandmember news 3,得到n1、n2、n4,这是随机获取,如果说是随机剔除呢,spop news,回车,提取出一个n1,然后查看news,smember news,得到剩余三个数据,然后接下来 spop news 2,提取出两个,分别是n3、n4,那么news就剩下n2了,smember news 得到一个n2,这个可以用作任务的分配以及后面的那一块东西。

相关文章
|
SQL Oracle 关系型数据库
实时计算 Flink版操作报错之往GREENPLUM 6 写数据,用postgresql-42.2.9.jar 报 ON CONFLICT (uuid) DO UPDATE SET 语法有问题。怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
195 6
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
273 17
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
Java
Java Set以其“不重复”的特性,为我们提供了一个高效、简洁的处理唯一性约束数据的方式。
【10月更文挑战第16天】在Java编程中,Set接口确保集合中没有重复元素,每个元素都是独一无二的。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet则基于红黑树实现,不仅去重还能自动排序。通过这两个实现类,我们可以轻松处理需要唯一性约束的数据,提升代码质量和效率。
121 2
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
130 2
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
NoSQL Redis
Redis set数据类型命令使用及应用场景使用总结
Redis set数据类型命令使用及应用场景使用总结
187 1
|
消息中间件 JSON NoSQL
Redis深度解析:核心数据类型之hash、list、set
Redis深度解析:核心数据类型之hash、list、set
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()
本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。
292 0