用户画像系列——布隆过滤器在策略引擎中的应用

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 用户画像系列——布隆过滤器在策略引擎中的应用

用户画像系列——当我们聊用户画像,我们在聊什么?

介绍了用户画像的应用场景:

(1)个性化推荐

通过用户标签给用户推荐合适的商品或者内容

(2)营销圈选

参考:用户画像系列——Lookalike在营销圈选扩量中的应用

(3)策略引擎

根据用户标签命中不同的策略,比如说:高消费人员有奢侈品入口通道

(4)算法模型

(5)画像报告

背景:

这篇文章分享的是用户画像在策略引擎中的应用。首先来了解下策略引擎是干什么的?

比如:当某个用户第一次进入某个平台,会给你弹窗有什么优惠,新用户优惠券等等;或者某个用户消费金额极高,达到一个阈值,认为该用户有极大的消费能力,可以开放奢侈品入口,即:淘宝上的奢侈品频道是根据之前有消费过奢侈品、且高价值的用户才开放的。

上述是一个简单的策略引擎,通过进行判断当前进入的用户是否满足某个或者多个条件然后进行相应的营销策略

问题和思路:

当引擎策略(或者称之为规则)过于复杂,同时还会经常对规则进行变更,那么是否有一个更加简单的方法来处理呢?即是这篇文章要要分享的通过人群圈选功能,圈出目标用户,定义为人群包,然后当前用户进行平台判断该用户是否在这个人群包里面,因为是线上服务,要求进行用户去查询人群包匹配是否存在的过程需要在毫秒内返回结果

通过上述方案,只需要修改圈选条件,就能够非常简单的解决,策略条件过于复杂以及经常调整的问题。

线上实际应用以及遇到的问题:

因为要求线上用户访问去人群包进行匹配的过程,需要在毫秒级进行返回,因此需要对于人群包数据进行存储,考虑采用redis 进行存储。

redis数据结构如下:

key:人群包id key_1,value:圈选出来的用户列表[userId_1,userId_2,userId_3等等]

SADD key_1 userId_1 userId_2 userId_3 //添加用户id到人群包key_1中
SISMEMBER key_id userId_3 //判断userId_3在不在人群包key_1中

但是随着人群包越来越多,需要的存储也越来越多,通常一个人群包里面的用户少则几万多则上千万甚至亿级。

优化方案:

通过使用redis 的布隆过滤器

bf.madd key_1 userId_1 userId_2 userId_3 //添加用户到人群包中
bf.exists key_1 userId_3 //判断用户是否在人群包中

由于布隆过滤器存储空间小,并且节省空间,不存储数据本身,仅存储hash结果取模运算后的位标记,整理存储优化极大相对于散列表

布隆过滤器详细原理参考:

Redis-布隆过滤器(Bloom Filter)详解

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7月前
|
存储 搜索推荐 关系型数据库
用户画像系列——HBase 在画像标签过期策略中的应用
用户画像系列——HBase 在画像标签过期策略中的应用
141 0
|
1月前
|
数据库 数据库管理 索引
索引在提高查询性能方面的优势体现在哪些方面?
索引在提高查询性能方面具有多方面的显著优势
|
1月前
|
存储 监控 测试技术
|
2月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
46 1
|
2月前
|
存储 监控 Java
千万级数据索引优化策略与实践
【10月更文挑战第10天】在处理千万级数据时,索引是数据库性能优化的关键。以下是根据您的要求,对如何使用索引进行快速查找、如何在实际工作中平衡这些问题,以及聚集索引、覆盖索引和索引下推的详细解读,并附上Java代码示例。
40 0
|
6月前
|
数据采集 Web App开发 缓存
深入了解布隆过滤器:数据筛选的利器
深入了解布隆过滤器:数据筛选的利器
|
6月前
|
XML 监控 大数据
基于Guava布隆过滤器优化海量字符串去重策略
**Guava Bloom Filter实践:** 在大数据场景下,利用布隆过滤器进行高效字符串去重。Guava提供易用的BloomFilter实现,通过添加Guava依赖,设定预期元素数和误报率来创建过滤器。尽管可能产生误报,但不会漏报,常用于初期快速判断。添加元素,使用`mightContain`查询,若可能存在,再用精确数据结构确认。优化涉及选择哈希函数、调整误报率和避免重复添加。
|
7月前
|
存储 新零售 监控
挖掘业务场景的存储更优解
挖掘业务场景的存储更优解
101 0
|
7月前
|
SQL 数据库 索引
聚簇索引的优化策略与注意事项:挖掘性能潜力的关键
聚簇索引的优化策略与注意事项:挖掘性能潜力的关键
|
存储 监控 负载均衡
大数据数据存储的搜索引擎Elasticsearch的调优的检索/聚合优化
Elasticsearch是一个可扩展的搜索引擎,可以在同一个集群中部署多个Elasticsearch节点,以提高性能和可用性。
167 2

热门文章

最新文章