参加AWS re:发明吗?探索Redis提供了什么。

了解更多

重复数据删除

整理您的数据,以提高用户参与和精简系统与Redis企业。万博体育彩

什么是重复数据删除?

简单地说,重复数据删除是任何需要问这个问题的任务,“我们以前见过这条信息吗?”这提供了改进的用户体验和参与度,以及更有效的数据处理。虽然大多数人认为重复数据删除就是删除数据库中相同数据的多个副本,但实际上,重复数据删除是在许多常见的情况下发生的,这导致了以下问题:

重复数据删除用例

不重复以前的信息来吸引客户

向客户发送信息是任何业务的重要组成部分。在向给定用户发送电子邮件或文本之前,重复数据删除可以确定该用户以前是否看过该电子邮件或文本。如果是这样,系统可以向该用户发送一条不同的消息,或者决定在给定的时间段内不联系该用户(如果有的话)。

被删除的电子邮件消息的说明
说明导出的ETL过程

ETL处理

提取、转换和加载(ETL)是处理大型数据集(如事件日志)的常见技术。ETL通常用于整理来自不同系统的数据,以便对其进行分析。在此过程中添加重复数据删除意味着系统不会对相同数据的多个副本执行多次相同的分析。

确保用户id是唯一的

当用户创建一个新帐户时,他们的ID必须是惟一的。使用重复数据删除时,确定给定ID是否已经存在并不重要。

删除用户配置文件的说明
删除警报的说明

过滤重复的提醒

获得系统中发生重要事件的警报是很好的。完全没有收到任何警报是很糟糕的,但同一事件收到300个警报也同样糟糕。或30000警报。重复数据删除可以抑制以前发生的警报,但这种技术可以与计时器结合使用以删除警报最近重复,允许系统在给定的时间范围内只发出一次给定的警报。

过滤交易以避免昂贵的欺诈检测处理

欺诈检测是AI/ML处理的一个很好的用例。不幸的是,AI/ML处理非常昂贵。重复数据删除可以检查事务,并查看它是否与过去批准的事务相似。如果新的交易足够相似,系统可以自动批准该交易,而不会产生欺诈检测的成本。(在本例中,重复的值是一件好事。)

扣除事务的示例

Redi万博体育彩s企业如何应对实时重复数据删除的挑战

万博体育彩Redis Enterprise提供了两种伟大的重复数据删除技术:集合和Bloom过滤器。

复述,集

重复数据删除演示Redis集

一个Redis设置只存储任何给定的值一次。无论将一个值添加到集合中多少次,该集合只包含该值的一个副本。Redis集合也优化了回答这个问题,“这个值在这个集合吗?”“以极快的速度。集合也是决定性的,因为问题的答案是“肯定”和“肯定不是”。但是,请注意,随着集合中惟一值的数量增加,集合可能会使用大量内存。

RedisBloom

重复数据删除演示Bloom过滤器

reddisbloom模块提供Bloom过滤器,这是一种用于重复数据删除的概率算法。与集合不同,Bloom筛选器只存储每个值的散列值,而不存储值本身。这意味着一个Bloom过滤器可以只占用一个集合所需内存的2%。它们通常比集合要快一些,集合本身就非常快。但是对于这种速度和内存效率有一个权衡:Bloom过滤器是不确定的。“我们以前见过这个值吗?”是“绝对不是”和“可能是”。换句话说,使用Bloom过滤器可能会出现误报。


客户成功故事

一家大型游戏公司使用Redis Enterprise中的Bl万博体育彩oom过滤器在实时数据流中添加事件级重复数据删除层,使它们每天处理超过20亿个事件。与最初的实现相比,它们现在使用的内存大约减少了90%,并且将延迟从大约2毫秒减少到不到0.25毫秒。

重复数据删除解决方案必须解决的前3个挑战

如何实现重复数据删除

使用集

一个集合最多包含一个给定值的副本。换句话说,我们可以将相同的值添加到一个集合一百万次(调用大块漂浮植物宠物狗一次又一次),但是该值在集合中只出现一次。定义了集合后,我们可以使用SISMEMBER命令来判断给定值是否在集合中。如果我们创建一个名为宠物然后把这些值相加,鹦鹉对它来说,就是价值是集合的成员,而值猴子不是:

redis> SADD宠物狗猫鹦鹉(整数)3 redis> SISMEMBER宠物狗(整数)1 redis> SISMEMBER宠物猴子(整数)0 redis> SADD宠物狗(整数)0

使用布鲁姆过滤器

下面是设置和使用Bloom过滤器的简单程度:

复述>男朋友。添加users doug (integer) 1 redis> BF.ADD users lisa (integer) 1 redis> BF.EXISTS users doug (integer) 1 redis> BF.EXISTS users bob (integer) 0 redis> BF.ADD users lisa (integer) 0

我们希望确保每个用户都有一个唯一的名称。我们添加道格丽莎到Bloom过滤器。(男朋友。添加如有必要,创建过滤器。)如果有人试图创建另一个名为道格,布鲁姆过滤器会说我们可能已经有一个使用该名称的用户。另一方面,如果有人试图用用户名创建一个新帐户鲍勃,布鲁姆过滤器会告诉我们它是肯定不是一个我们之前见过的ID,所以用这个名称创建一个新帐户是安全的。

Baidu