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

独立开发 一个社交 APP 架构分享 (已实现)

按编辑 图文混排类型 图文加视频录制类型 按类型(内容布局各不相同) 圈子,可以发布视频,显示位置 我作品,图文混排,瀑布流显示 创业,不开启评论与 操作: 帖子评论与评论回复,包含表情插入...: 使用x5浏览器内核显示,效果和微信相似,包括视频播放 权限 除了不能被帖子,其他同帖子操作 我模块(用户信息) 我背景图片 显示个人信息页面 点击可以修改,含剪辑 我消息模块 推送...UI更新,防止失败页面显示错乱 判断是否已经登录 判断之前是否点过,否则就是撤销,这个操作需要在加载账号时候,保存到一个列表里面,例如 List 以作后续判断。...赞成功后再做对应UI更新,例如图标变颜色等等 布局        采用布局是 HeaderView + CommentView,HeaderView 用于显示帖子所有内容含帖子,CommentView...帖子有三种类型,对应三张表,文章独立一张表 一张表 评论一张表 收藏一张表 信息提醒一张表 用户消息查看与否以及数目移动端显示,需要在消息表设置加上是否查看了字段,可以解决以下几个问题:

4.6K101

你所不知道缓存使用场景

当你应用扛不住,知道要使用缓存了,应该怎么做呢?   场景1:和数据库数据结构保持一致,原样缓存   这种场景是最常见场景,也是很多架构使用缓存适合,最先涉及到场景。   ...场景2:列表排序分页场景缓存   有时候我们需要获得一些列表数据,并对这些数据进行排序和分页。   例如我们想获取最多评论,或者最新评论,然后列出来,一页一页翻下去。   ...可以后台有一个线程,异步初始化和刷新缓存,缓存里面保存一个时间戳,当有更新时候,刷新时间戳,异步任务发现时间戳改变了,就刷新缓存。   ...因此可以有一个计数服务,后端是一个缓存,将计数作为结果放在缓存里面,当数据有改变时候,调用计数服务增加或者减少计数,而非通过异步数据库count来更新缓存。   ...例如一个商品所有的帖子帖子用户,以及一个用户发表过所有的帖子就是属于两个维度。   这需要写入一个维度时候,同时异步通知,更新缓存另一个维度。

1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Redis | 001能做什么?

本博客 猫叔博客,转载请申明出处 前言 本系列整理出于《Redis深度历险:核心原理与应用实践》一书,摘抄整理读后感与总结。 好程序员都会Redis 说说Redis能做什么呢?...1、记录帖子数、评论数和点击数(hash); 2、记录用户帖子ID列表(排序),便于快速显示用户帖子列表(zset); 3、记录帖子标题、摘要、作者和封面信息,用于列表页展示(hash);...4、记录帖子用户ID列表,评论ID列表,用于显示和去重计数(zset); 5、缓存近期热帖内容(帖子内容空间占用比较大),减少数据库压力(hash); 6、记录帖子相关文章ID,根据内容推荐相关帖子...(list); 7、如果帖子ID是整数自增,可以使用Redis来分配帖子ID(计数器); 8、收藏集和帖子之间关系(zset); 9、记录热榜帖子ID列表、总热榜和分类热榜(zset); 10、缓存用户行为历史...拉取 Redis 镜像 > docker pull redis # 运行 Redis 容器 > docker run --name myredis -d -p6379:6379 redis # 执行容器

99130

InstagramUX和UI演变史

Logo Logo是一个对公司品牌举足轻重东西,在用户界面设计是至关重要。...社媒上,被视为社交货币,“隐藏“则减少了用户之间肤浅竞争。 这样一来,人们可以更自由地平台上表达自己,而不必不断寻求观者认同。...但是,KOL和广告商则对这项优化抱有不同看法,因为KOL无法向公众展示他们活跃度了。 此外,尽管无法看到发布被点了多少次,用户仍然可以看自己被次数,但是这不会对他们心理健康造成影响。...当用户为了查看更新帖子而滚动到feed底部时,显示仍然是更多“猜你喜欢”这类帖子。而这个功能本来就已经重复了,“浏览”页下,已经根据用户兴趣推荐了帖子。...结论 Instagram已经超越照片分享平台,而发展成为文化趋势发源地了。这一,随着时间推移在用户体验和用户界面更新也能看到端倪。

1.4K20

还记得当年百度贴吧吗? 今天, 有人写了一个去中心化...

} 为存储每个帖子投票纪录,我们需要在帖子结构体 Post 相应地加入“好评”投票计数器和“差评”投票计数器。...NewVote( uint indexed postId, address owner, uint8 vote ); 由于帖子结构体 Post 中加入了投票计数器,需要用新结构体更新 createPost...函数,我们用当前投票类型更新“好评”投票计数器或“差评”投票计数器,存储已投票用户信息并发出新建投票事件 NewVote: function vote(uint _postId, uint8 _...通过使用哈希值我们可以保证数据索引与数据一一对应,同时智能合约存储数据索引始终具有相同长度,所以我们将帖子真正描述存储 IPFS ,而创建帖子函数 createPost 帖子描述实际上是帖子描述...我们有许多种不同方法验证投票函数 vote() 功能是否符合预期,但在本教程,我们只检查新建投票事件 NewVote 发出投票所有者帐户是否与真正执行投票帐户相同代码实现我们可以借鉴先前测试

65500

2018年第九届Java B组蓝桥杯省赛真题

这里是蓝桥杯历年题目专栏,将会陆续更新将往年真题以及解答发布出来,欢迎各位小伙伴关注我吖,你们关注就是给我最好动力!!!...题目分析 题目代码 ---- 第二题:方格计数 题目描述 如图p1.png所示,二维平面上有无数个1x1小方格。 ? 我们以某个小方格一个顶点为圆心画一个半径为1000圆。...现在他收集了一份""日志,日志共有N行。其中每一行格式是: ts id 表示ts时刻编号id帖子收到一个""。 现在小明想统计有哪些帖子曾经是"热帖"。...如果一个帖子曾在任意一个长度为D时间段内收到不少于K个,小明就认为这个帖子曾是"热帖"。...具体来说,如果存在某个时刻T满足该帖[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个,该帖就曾是"热帖"。 给定日志,请你帮助小明统计出所有曾是"热帖"帖子编号。

77920

剑指 Offer:Redis 14 大使用场景!

昨天一位网友面试腾讯中被问到了,Redis 是单线程,为什么还那么快?他回答不是很好,而且面试官也善意提醒了一些关键,但是由于他没准备,所以再次失败了。...所以,今天我就抽个一时间,根据以前我做电商经验。分享一下 Redis 10 大使用场景。 1、记录帖子或者文章数、评论数和点击数 (hash)。...4、记录帖子用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。 5、缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。...6、记录帖子相关文章 ID,根据内容推荐相关帖子 (list)。 7、如果帖子 ID 是整数自增,可以使用 Redis 来分配帖子 ID(计数器)。 8、收藏集和帖子之间关系 (zset)。...但是,我们也要注意,不要刻意为了使用某一个功能,而故意使用某项技术。比如,Redis 作者就不推荐队列等方面使用 Redis 来做。

21010

5天内用户数破亿、增速碾压ChatGPT,Twitter劲敌Threads是如何构建

此外,Threads 用户活跃度也很高,据报道,过去几天 Threads 上帖子数量已经达到 9500 多万条,数 1.9 亿次。...只能保证 Cinder Meta 自己生产工作负载稳定且快速,但不保证其在其他外部工作负载或用例具有良好稳定性、正确性或性能。...为此,Cinder 开发出名为“不朽实例”(Immortal Instance)解决方案,能够从引用计数清退对象。...其中,Android 版 Threads 与 Instagram 间 /assets/dsp 也是相同。考虑到 Threads 与 Instagram 高度集成,二者共享代码也完全情理之中。...Threads 团队希望快速行动,一切可能位置直接使用 Instagram 那边现成代码。未来发展,Threads 会不会逐步“去 Instagram 化”值得关注。

19930

零基础入门分布式系统 5. Replication

以""行为为例,当你点击"/喜欢"按钮时,你“事实以及已往“”的人数需要被存在某个地方,以便它们可以显示给你和其他用户。这通常发生在社交网络服务器上一个数据库。...然而,崩溃-恢复系统模型,需要将request(或一些关于request元数据,如向量时钟)存储稳定存储,这样即使崩溃后也能准确地检测到重复请求。...因此,如果需要一个计数器(如数量),最好是在数据库实际维护元素集,并通过计算该集合量数从中得出计数器值。 幂等更新重试是安全,因为执行几次和执行一次效果是一样。...幂等性通常出现在RPC语境,其中重试是非常常见。 当多个更新同时发生时候,幂等性会遇上一个问题。客户端1将一个用户ID添加到一个帖子集合,但ack确认丢包。...客户端2从数据库读取集合(包括客户端1添加用户ID),然后再次发出请求,删除该用户ID。同时,客户端1重试请求,但它不知道客户端2更新。因此,客户端1重试结果是将用户ID再次添加到集合

66410

Redis跳跃表,实现有序集合

建议先关注、、收藏后再阅读。图片Redis跳跃表每个节点需要存储以下信息:层级(level):节点当前所处层级(Level),层级从0开始计数,0级是底层。...层级跨度(level span):当前节点到下一个节点跨度,即当前层级上,节点与下一个节点之间距离。...Redis跳跃表每个节点前进指针(pointer)Redis跳跃表每个节点都有一个前进指针,用于跳跃表快速定位下一个节点。前进指针有两种类型,分别是level和span。...生成一个随机数r,且r范围为[0,1)。如果r小于跳跃概率,将最大层数加1,并将跳跃概率设为0.5。重复步骤2和3,直到r大于等于跳跃概率。返回最大层数作为节点在每个层级上跳跃层数。...通过使用内存管理器和jemalloc分配和释放函数,Redis跳跃表节点分配和释放内存过程能够高效地利用内存空间,并减少内存碎片产生。

21061

关于 ECMAScript 2015(ES6)一些有用提示和技巧

2.4 统计数重复数据 (数组 → 对象转换) 有时你需要统计数重复数据,或将数组转换为对象,你就可以使用reduce了。...第 2 个对象键值对会覆盖第 1 个对象键值对 [译者注:如果键名相同的话]。下面示例第 object2 b 和 c 两个键值对覆盖了 object1 同名键值对。 ? 4....Sets 4.1 使用Sets去重,ES6可以很容易使用Sets去除重复数据,Sets只允许保存唯一数据。 ?...5.2 从一个函数接收和赋值多个值 在下面的例子,我们正在从/post上获取帖子,以及存在/comments相关评论。由于我们使用async / await,函数返回结果保存在数组。...使用数组解构,我们可以直接将结果直接分配给相应变量。 ? 如果你觉得这是有用,请多次点击下面的按钮,以表示你支持!

71830

单调栈,栈还能单调一下?

单调栈套路 比如说这样一道题目: 给一个数组,返回一个大小相同数组。...一看这个题目,我相信你第一眼肯定会想到暴力解法:针对每一个要计算数 a,往后遍历,并计数 cnt,找到第一个比 a 大就将 cnt 填进去,找不到就填 -1。时间复杂度 O(N^2)。...这个"大数"比它之前多少个数大我们不知道,但是至少比当前栈顶所对应数大。我们弹出栈内所有对应数比这个数小栈内元素,并更新它们返回数组对应位置值。...rst = 1 while self.prices and self.prices[-1][1] <= price: # 找到了一个递增对,将其出栈(因为其历史跨度已经记录在了下一个元素...本文分享了单调栈定义,套路,典型实战案例,如果有帮助,请、在看、关注支持,这次一定。

2K30

利用 leanCloud 实现功能

功能 社交平台必备良药,谁谁谁什么时候给你点了个什么貌似已经深入人心了。...之前 @火喵酱 博客页面有看到说想用 leancloud 实现 do you like me 功能,之前没接触 leancloud SDK 不知道咋搞,后来就不了了之,然后因为最近做了 valine...最新评论排行,所以借这个风顺便来做个功能~ 按钮 实践操作 和 valine 最新评论一样,首先需要引入 sdk 并初始化完成化后接入具体实现代码即可(这个就不说了,上篇笔记里有写) 实现思路...这里再聊下思路,一般做功能都是本地点击计数之后再把数据上传到云端服务器,访问页面的时候直接根据页面拉取对应数据填充即可。...不过这里面有个读取和储存数据操作, leancloud 文档里明确说到: 由于和转发操作可能由多个客户端同时进行,直接在本地更新数字并保存到云端做法极有可能导致差错。

8610

「SQL面试题库」 No_83 每个帖子评论数

1.1 活动流程 整理题目:西红柿每天无论刮风下雨,保证8am 前,更新一道新鲜SQL面试真题。...1.2 你收获 增强自信,搞定面试:求职中,SQL是经常遇到技能,而这些题目也多数是真实面试题,刷题可以让我们更好地备战面试,增强自信,提升自己核心竞争力。...Submissions 可能包含重复评论。您应该计算每个帖子唯一评论数。 Submissions 可能包含重复帖子。您应该将它们视为一个帖子。...表 ID 为 3 评论重复出现了,所以我们只对它进行了一次计数。 表 ID 为 2 帖子有 ID 为 5 和 10 两个评论。 ID 为 12 帖子没有评论。...表 ID 为 6 评论是对 ID 为 7 已删除帖子评论,因此我们将其忽略。

3200

开源社区系统 Echo 超全文档助力春招

,并提供详细开发文档和配套教程。包含帖子、评论、私信、系统通知、、关注、搜索、用户设置、数据统计等模块。...) 「统一处理 404 / 500 异常」 普通请求异常 异步请求异常 「统一记录日志」 「模块」 未登录用户无法使用相关功能 支持对帖子、评论/回复 第 1 次,第 2 次取消 首页统计帖子数量...详情页统计帖子和评论/回复数量 详情页显示当前登录用户状态(过了则显示已) 统计我数量 权限管理(Spring Security) 「关注模块」 未登录用户无法使用关注相关功能...一个帖子详情页需要封装信息大概如下: ? 添加评论(事务管理) ? 私信列表和详情页 ? 发送私信(异步请求) ? (异步请求) 将相关信息存入 Redis 数据结构 set 。...帖子热度计算 每次发生点(给帖子)、评论(给帖子评论)、加精时候,就将这些帖子信息存入缓存 Redis ,然后通过分布式定时任务 Spring Quartz,每隔一段时间就从缓存取出这些帖子进行计算分数

2.2K20

Redis - 超越缓存多面手

Redis 使用场景 Redis可以各种场景中使用 会话 我们可以使用Redis不同服务之间共享用户会话数据。 缓存 我们可以使用Redis缓存对象或页面,特别是对于热点数据。...分布式锁 我们可以使用Redis字符串分布式服务之间获取锁定。 计数器 我们可以计算文章数或阅读次数。 速率限制器 我们可以为特定用户IP应用速率限制。...多个服务或服务器可以共享相同用户会话,从而实现无缝用户体验。 缓存: Redis是一个高性能缓存数据库,可用于缓存常用数据或页面,减轻后端服务器负载,提高应用程序响应速度。...分布式锁: 使用Redis分布式锁功能,不同服务之间可以协调并避免重复执行特定任务,确保数据一致性。 计数器: Redis可用于跟踪和更新计数器,例如数、阅读次数等。...全局ID生成器: Redis自增计数器可用于生成全局唯一ID,特别是分布式系统。 购物车: RedisHash数据结构可用于存储购物车商品信息,以便实时更新和管理。

16630

图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成机制

Interactive Workload:主要针对 OLTP,模拟了用户社交网络上日常活动,例如发布帖子、添加好友、等。读请求以查询以一到两跳为主,同时可能会伴随一些写请求。...每个 Person 可能会有若干 Forum(特定讨论区),Person 可以 Forum 中下面发送若干 Post(帖子),其他 Person 可能会 likes()其中一些 Message(消息...以上这些元素数据量主要会受 Person 和时间影响:有更多朋友的人会发送更多评论或时间越长,会结交更多朋友,评论或数量也会上升还有一部分数据不会随 Person 数量而变化,主要包括一些...这一重要功能确保了任意一个数据系统都能使用相同数据集,保证不同系统环境之间测评比较公平且基准测试结果可重复。易用性:DataGen 被设计得尽可能易于使用。...而 Update Streams 包含了所有更新操作,主要就是模拟实时注册新用户、评论、、加好友等等行为。

25410

敖丙蘑菇街技术分享

正常大家知道就是缓存,又或者分布式情况分布式锁,还有么? 那丙不是一直都是写博客嘛,我就说一下博客哪些场景会用到redis: 记录帖子数、评论数和点击数 (hash)。...记录帖子用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。...记录帖子相关文章 ID,根据内容推荐相关帖子 (list)。 如果帖子 ID 是整数自增,可以使用 Redis 来分配帖子 ID(计数器)。 收藏集和帖子之间关系 (zset)。...,不过他最近更新大部分都是英文了。...比如在新闻去重上而言,误判率高一只会让小部分文章不能让合适的人看到,文章整体阅读量不会因为这点误判率就带来巨大改变。 爬虫系统,我们需要对 URL 进行去重,已经爬过网页就可以不用爬了。

1.2K30

使用Python对Instagram进行数据分析

该列表每个单元包含有关时间轴特定帖子信息,包括以下单元: [text] – 标题文本值保存在帖子下面,包括标签 [likes] – 数量 [created_at] – 创建帖子日期 [...功能 Get_posts_from_list()和Get_url()将循环访问帖子列表,找到每个帖子URL并将其添加到空列表: 完成后,我们应该有如下URL列表: ?...笔记本查看图像是非常有用,我们稍后将使用这些函数来查看我们结果,正如你将看到那样。 获得帖子排行榜 我们需要得到我们最喜欢帖子。...为了做到这一,首先我们需要在你用户配置文件获得所有的帖子,然后根据点数量对它们进行排序。...你可以从这一做很多事情,例如保存跟踪列表,然后稍后时间比较它以获得unfollower列表。 这些都是你可以用Instagram数据做事情。

2.7K40
领券