首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Reddit 如何实现大规模的帖子浏览计数

到目前为止,投票得分和评论数量是特定的帖子活动的主要指标。然而,Reddit 有许多访问者在没有投票或评论的情况下阅读内容。我们希望建立一个能够捕捉到帖子阅读数量的系统。...然后将该数量展示给内容创建者和版主,以便他们更好地了解特定帖子上的活动。 在这篇文章中,我们将讨论我们如何大规模地实现计数。 计数方法 对浏览计数有四个主要要求: ◈ 计数必须是实时的或接近实时的。...为了实时保持准确的计数,我们需要知道某个特定的用户是否曾经访问过这个帖子。要知道这些信息,我们需要存储先前访问过每个帖子的用户组,然后在每次处理对该帖子的新访问时查看该组。...stream-lib 中的代码有很好的文档,但是要理解如何正确使用这个库并且调整它以满足我们的需求是有些困难的。 ☉ Redis 的 HLL 实现(我们选择的)。...为了保持对可能从 Redis 删除的旧帖子的维护,Abacus 定期将 Redis 的完整 HLL 过滤器以及每个帖子的计数记录到 Cassandra 集群中。

1.3K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用 Redis 实现大规模的帖子浏览计数

    来源:http://t.cn/EL1FB0M 统计方法 ---- 英文原文 本文翻译自全球访问量排名第8位的论坛Reddit博客上的文章,讲的是关于Reddit如何在海量浏览量下实时统计浏览量的。...img 本文我们就来聊一聊,Reddit 是如何在大规模下统计帖子浏览量的。 统计方法 我们对统计浏览量有四个基本的要求 计数必须达到实时或者接近实时。 每个用户在一个时间窗口内仅被记录一次。...帖子显示的统计数量的误差不能超过百分之几。 整个系统必须能在生成环境下,数秒内完成阅读计数的处理。 满足上面四个条件,其实比想象中要复杂。...和Scale两种实现 Twitter的Algebird库,Scala实现,Algebird的文档撰写非常好,但是关于它是如何实现HLL的,不是很容易理解。...stream-lib库中的HyperLogLog++实现,Java编写。 stream-lib代码的文档化做的很好,但我们对如何适当调优它,还是有些困惑的。

    2.1K40

    如何检查列表中的某个帖子是否被当前用户投票

    在 Django 项目中,如果需要检查一个列表中的某个帖子是否被当前用户投票(比如点赞或踩),可以通过数据库查询实现。...以下是具体的实现方法,假设你使用的是 Django 并有如下的数据库模型结构:问题背景我正在创建一个reddit克隆,其中存在一个问题,我正在寻找一种方法来指示当前用户是否对某个特定问题进行过投票,而不会产生过多数据库请求...我的模型如下:class Thread(models.Model): title = models.CharField(max_length=200) text = models.TextField...downvoted_by(self, user): return self.down_votes.filter(user=user).exists()然后,在视图中,我们可以使用这些方法来检查用户是否对某个帖子进行过投票...down="{%if node.pk in downvoted_comments %}{% endif %}"​ ...​通过上述方法,可以高效地检查列表中每个帖子是否被当前用户投票

    4200

    【精选好文】Reddit如何统计每个帖子的浏览量

    所以我们想要建立一个能够计算一个帖子浏览数的系统。这一数字会被展示给帖子的创作者和版主,以便他们更好的了解某个帖子的活跃程度。 在这篇博客中,我们将讨论我们是如何实现超大数据量的计数。...这种实现方式对于访问量低的帖子是可行的,但一旦一个帖子变得流行,访问量剧增时就很难控制了。甚至有的帖子有超过 100 万的独立访客!...2、stream-lib中提供的 HyperLogLog++, 采用 Java 实现。stream-lib 中的代码文档齐全,但有些难理解如何合适的使用并且改造的符合我们的需求。...这通常会发生在网友访问较老帖子的时候,这时该帖子的计数器很可能已经在 Redis 中过期了。 为了存储存在 Redis 中的计数器过期的老帖子的浏览量。...总  结 我们希望浏览量可以让发帖者了解帖子全部的访问量,也帮助版主快速定位自己社区中高访问量的帖子。在未来,我们计划利用我们数据管道在实时方面的潜力来为 Reddit 的用户提供更多的有用的反馈。

    1.4K40

    如何撤消 Git 中最新的本地提交?

    图片本文将详细介绍如何在Git中撤消最新的本地提交。步骤1:查看提交历史在撤消最新的本地提交之前,首先需要查看提交历史,以确定要撤消的提交的哈希值。...步骤2:撤消最新的本地提交2.1 撤消并删除最新的提交如果您希望完全撤消并删除最新的提交,可以使用git reset命令。...使用以下命令撤消最新的本地提交:git reset --hard HEAD~1该命令将回退到上一个提交,并删除最新的提交及其相关的更改。请注意,此命令是不可逆的,撤消后无法恢复删除的提交和更改。...使用以下命令撤消最新的本地提交:git reset HEAD~1该命令将回退到上一个提交,并将最新提交中的更改保留为未提交的更改。这样,您可以重新调整暂存区,并将更改作为新的提交。...使用Git进行版本控制时,了解如何正确地撤消提交是至关重要的。通过掌握这些技巧,您可以更好地管理代码库,并确保代码的准确性和稳定性。

    1.3K30

    如何看待openai最新发布的sora?

    OpenAI的宏大愿景 Sora不止步于视频生成工具,它的背后是OpenAI的宏大愿景:开发出能够让计算机理解我们世界的算法和技术,而OpenAI认为最有可能的技术之一是生成模型 (generative...这个方法的灵感来自于理查德·费曼的一句名言:“我所无法创造的,我也不能理解。”...(即:要真正理解一个事物,你需要去创造它)这个方法的妙处在于,我们使用的神经网络作为生成模型,其参数的数量远远少于训练它们的数据量,这迫使模型必须发现并有效地吸收数据的精髓,以便能够创造出新的数据。...灵活的编码(visual patches) 在大语言模型的构建中,一个非常重要的部分便是它的tokenizer。...(2)详细的文本也迫使神经网络学习文本到视频内容的映射,加强对于prompt的理解和服从。 另外一个细节:这种详尽的描述会导致在使用时的bias——用户的描述都相对较短。

    16110

    如何在Ubuntu 18.04上安装最新的MySQL

    方便的是,MySQL开发人员维护自己的软件存储库,我们可以使用它来轻松安装最新版本并使其保持最新。...要安装最新版本的MySQL,我们将添加此存储库,安装MySQL软件本身,保护安装,最后我们将测试MySQL是否正在运行并响应命令。...默认值将添加最新稳定版MySQL的存储库信息,而不是其他任何内容。这就是我们想要的,所以使用向下箭头导航到Ok菜单选项并点击ENTER。 该包现在将完成添加存储库。...将查看所有可用的mysql-server包并确定MySQL提供的包是最新和最佳候选者。...您已成功安装最新的MySQL服务器并对其进行了保护。 结论 您现在已经完成了最新版MySQL的基本安装,这应该适用于许多流行的应用程序。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    2.3K21

    如何在Debian 9上安装最新的MySQL

    要安装最新版本的MySQL,我们将添加此存储库,安装MySQL软件本身,保护安装,最后我们将测试MySQL是否正在运行并响应命令。...默认值将添加最新稳定版MySQL的存储库信息,而不是其他任何内容。这就是我们想要的,所以使用向下箭头导航到Ok菜单选项并点击ENTER。 该包现在将完成添加存储库。...第2步 - 安装MySQL 添加了存储库并使用我们的软件包缓存进行了新近更新,我们现在可以使用apt安装最新的MySQL服务器软件包: sudo apt install mysql-server apt...将查看所有可用的mysql-server包并确定MySQL提供的包是最新和最佳候选者。...您已成功安装最新的MySQL服务器并对其进行了保护。 结论 您现在已经完成了最新版MySQL的基本安装,这应该适用于许多流行的应用程序。 更多Debian教程请前往腾讯云+社区学习更多知识。

    4.1K40

    如何在 Rocky Linux 上安装最新的 PHP 8?

    这种错误兼容性特性使Rocky Linux能够将其先前操作系统版本中的不受欢迎的功能复制到当前版本,这种回溯功能对 Web 应用程序开发人员来说非常重要,尤其是在 PHP 编程语言的前提下。...这些开发人员和用户能够实现新的/改进的PHP 8功能,例如命名参数、构造函数属性提升、匹配表达式、更合理的字符串到数字比较、属性、联合类型、nullsafe 运算符以及内部函数的一致类型错误。...先决条件 确保您是您正在使用的 Rocky Linux 操作系统的root/sudoer 用户。...在 Rocky Linux 上安装 PHP 8 通过执行以下命令确保您使用的Rocky Linux是最新的: $ sudo dnf update && sudo dnf upgrade -y 现在您已经更新了...$ sudo dnf update && sudo dnf upgrade -y 最后,检查Rocky Linux上可安装的PHP版本的可用性,您应该能够看到从7.2到8.x的 PHP 版本列表。

    1.1K50

    如何制作最新补丁的Win10 LTSC ISO

    背景:2024.6.11后,Win10 21H2普通版将会终止服务,不会再收到安全和质量更新,Win10 21H2 LTSC 2021还会持续一段时间到2027.1.12,制作最新补丁的Win10 21H2...2024年4月初,本人对Win10 21H2 LTSC 2021的原版ISO进行了补丁集成 Win10 21H2 LTSC 2021的原版ISO是2021年11月释出的,内容是2021年10月7日 ISO...可以自己去上网搜迅雷链接(ed2k://),下载速度很快,下面介绍下如何集成补丁 1、2023-04 适用于 Windows 10 Version 21H2 的关于oobe的补丁,KB5026037 2...C:\Scratch目录 最新的月度安全更新要用expand解压到C:\temp目录,解压后会有一个SSU*.cab文件(较小)和KB号关键字的.cab文件(最大),用dism先add SSU*.cab...,然后add最大的。

    99910

    微信是如何做起来的?看完这篇帖子明白了,为什么米聊与来往不行。

    毫无疑问微信是一款非常成功的产品,那么微信是怎么做起来的呢?仅是因为腾讯有强大的用户基础,以及张小龙踩对了时代的脉搏吗?还是因为腾讯内部有多个团队共同研发相似产品的赛马机制?...今天我在知乎看到一篇关于“腾讯的张小龙是一个怎样的人?”这个问题的答帖,写的很好,内容是不允许转载的,但没有关系,可以跳到知乎阅读。单击文未阅读原文即可以查看。...虽然问题是“腾讯的张小龙是一个怎样的人?”,但是答贴却是围绕“微信是如何做出来的”展开的。...我是QQ邮箱的重度用户,我还是它的第一位不限容量的用户,我不知道是不是真的,反正界面上是这么展示的。 ? 二、人 毫无疑问张小龙这个人在微信崛起的过程中十分重要。...一些几十人的小团队的小领导,总是报怨自家的产品做得垃圾,整天在钉钉群里艾特这个艾特那个,生生把研发工程师逼成了随时在线的客服,请问你让他们认真写代码了吗?你给他们专心做事的时间了吗?

    1.3K10

    最新5G的下载和上传性能如何?

    根据国际市场研究公司的最新数据,发型 5G 网络性能在过去 12 个月中有了很大改善。实际测试显示 5G网络的下载和上传速度都达到了新的峰值。...调查结果显示,5G 的全球平均室外下载速度为 210.05 Mbps,而室内为 182.46 Mbps。5G 下载速度比 4G 有显着提升,分别增加了 486.57%(室外)和 694%(室内)。...5G 上传速度占下载速度的百分比为 17%,而 4G 为 74%。下载和上传速度在 5G 中仍然是超不对称的,需要改进才能更好地支持5G在企业等场景中的应用。...同时,调查结果还揭示了延迟在室内环境中受到的负面影响,5G 室内平均延迟比室外低 14.58 ms,4G 室内平均延迟比室外高 15.32ms。...在挪威和菲律宾进行的户外速度测试显示延迟低于 10 ms,紧随其后的是美国(10 ms)、中国(11 ms)和法国(11 ms)。

    33410

    Gartner最新调查:政府如何扩大云采用的规模

    但对于一些政府而言,“上云”所带来的安全、部署等挑战往往超过了可能带来的收益。 Gartner近期开展的一项云终端用户购买行为调查发现,政府云举措的总成功率达到63%。...这一结果与全球所有行业的平均值68%相差无几。 ? 失败发生在生产阶段而不是试点阶段。政府云部署的失败率(24%)几乎是全行业平均失败率9%的三倍。...政府失败率较高的原因包括:一些目标被过度延展且不切实际或者试点项目常常无法获得足够的技术资源。...政府首席信息官可以通过以下方式领导并改进未来的云采用: 确保整个企业机构了解云采用的意图、方向和路线图。 建立获得充分赋能的云技术中心。 补充缺少的技能并寻求知识转移。...扩展软件即服务(SaaS)的使用并实施对用户友好的控制。 确保整个企业机构参与云采用,而不仅仅是IT部门。 ? ?

    34330
    领券