尤其是一个明星,他有上百万上千万粉丝:解决方案有两个思路:1 由被关注者主动推数据2 由被关注者向粉丝推送一个通知,然后由粉丝去拉数据不过这样就意味着他发一条消息需要有千万个人来访问这张消息表或发一条消息需要写向千万个粉丝的消息表写数据。第一种方案,应该是每个人都有一张自己的消息表。当被关注者发消息时,会将此消息写入关注者的消息表中,内容大概有被关注者id、消息内容、发送时间。
一、SQL语法 SQL语句对大小写不敏感,且 ;作为语句的结束,程序中会自动补充 SQL关键字 1、SELECT 从数据库中提取数据,结果被存在一个结果表中(结果集) 2、UPDATE 更新(修改)数据库中的数据 3、DELETE 从数据库中删除数据,用于删除表中的行 4、INSERT INTO 向数据库中插入新数据(向表中插入新的行) 5、CREAT DATEBASE 创建新的数据库 6、ALT
转载
2023-08-30 11:32:26
165阅读
一、数据结构分析用户关注粉丝是一个多对多的数据模型,分析对象的数据特征,我们给每个用户设计一个关注者属性和粉丝属性,用于存储用户的关注者id和粉丝id,如用户1:$arr1 = [
'follow' => '[2,3,4],
'fans' => [4,5,6],
]二、用户逻辑关系梳理在用户关注粉丝模型中,有两种常见场景:查看自己的粉丝或者关注列表:这种情况下最多会出现三种关系:其
转载
2024-05-29 06:49:47
319阅读
首先从原型上说存在四种关系状态 +关注(0 表示无关系 1表示粉丝) 已关注(2表示已关注) 互相关注(3表示相互关注) 表设计 1.select * from s_follower where u1=? 查询用户id = ?的粉丝列表 2.select * from s_follower where u2=? 查询用户id = ?的关注列表然后按原型实现关注列表/粉丝列表/关注(取消关注) 1.
# Redis 粉丝关注设计的实践与思考
在当今社交网络迅速发展的时代,粉丝关注系统已经成为了社交平台的核心功能之一。本文将结合 Redis 数据库,探讨粉丝关注系统的设计与实现,并提供代码示例和一些考虑因素。
## 1. 系统设计需求
在设计一个粉丝关注系统时,我们需要考虑以下几个关键需求:
- 用户可以关注或取关其他用户。
- 系统需要高效地查询一个用户的粉丝列表和关注列表。
- 需要支
一、数据结构分析用户关注粉丝是一个多对多的数据模型,分析对象的数据特征,我们给每个用户设计一个关注者属性和粉丝属性,用于存储用户的关注者id和粉丝id,如用户1:
$arr1 = [
'follow' => '[2,3,4],
'fans' => [4,5,6],
]
二、用户逻辑关系梳理在用户关注粉丝模型中,有两种常见场景:1.查看自己的粉丝或者关注列表:这种情况
转载
2020-05-04 21:30:00
650阅读
2评论
# 粉丝关注架构设计实现指南
在现代社交应用中,粉丝关注功能是一项必不可少的模块。它可以让用户互相关注,建立社交关系。本文将为初学者提供一个完整的粉丝关注架构设计的实现方案,包括流程、代码示例和相应的图示。
## 流程概述
首先,我们需要理解整个关注功能的基本流程。以下是实现粉丝关注的流程步骤:
| 步骤 | 操作描述 |
|--
微博中的用户关系需要使用有向图(Directed Graph)表示。因为关注是单向关联,A关注了B,但是B不一定关注A。下图是一个简单的粉丝关系示意图:如果A关注了B,就会存在一条从A到B的带箭头的边。上图中的“刘一”关注了“周八”,同时“刘一”和“李四”相互关注。对于有向图而言,度又分为入度(In-degree)和出度(Out-degree)。入度表示有多少条边指向该顶点,出度表示有多少条边是以
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理模式,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境。1. 数据库设计的特点(1) 数据库建设的基本规律“三分技术,七分管理,十二分基础数据”是数据库设计的特点之一。(2) 结构(数据)设计和行为(处理)设计相结
转载
2024-09-27 14:16:30
20阅读
1. 数据库操作2. 常用数据类型3. 表的操作 1. 数据库操作sql语法中没有大小写之分.sql语句是以;[分号为结束标志]1.创建数据库语法:create database 数据库名 ;注释:create database 表示关键字,[创建数据库]不能重复创建同一名称的数据库,可以在create database 后加 if not exists 数据库名;表示如果存在此数据库,则不创建
转载
2024-09-28 22:58:19
39阅读
目录前言示例1.原生Java2.jdk-Observable&Observer2.spring-Observable&Observer总结前言观察者模式对于我们来说,真是再简单不过了。无外乎两个操作,观察者订阅自己关心的主题和主题有数据变化后通知观察者们。示例1.原生Java首先,需要定义主题,每个主题需要持有观察者列表的引用,用于在数据变更的时候通知各个观察者:public cl
转载
2024-07-17 07:53:41
23阅读
# Redis:粉丝与关注关系的存储与管理
在当今社交网络的时代,"粉丝"与"关注"的关系是一个极为重要的概念。无论是微博、Twitter还是其他社交平台,粉丝与关注的关系直接影响着内容的传播与用户的互动。Redis,一个高性能的键值数据库,因其高效的存储特性和快速的数据访问能力,被广泛应用于实现这种类型的功能。在本文中,我们将探讨如何使用 Redis 实现粉丝与关注的关系,并提供相应的代码示例
# 使用 Redis 实现“关注的人 与 关注者”机制
在现代社交网络中,实现用户之间的“关注”关系通常是一个重要的功能。本篇文章将带你一步步实现“关注的人”和“关注者”的功能,使用 Redis 作为数据存储引擎。我们将探讨整个流程、所需的代码,并通过图示来帮助理解。
## 流程概述
我们将分为以下几个基本步骤来实现该功能:
| 步骤 | 描述 |
## Redis 关注列表和粉丝列表
在很多社交网络应用中,都会涉及到用户之间的关注关系。比如微博、Twitter等平台,用户可以关注其他用户,同时也可以被其他用户关注。为了实现这种功能,我们可以使用 Redis 数据库来存储用户的关注列表和粉丝列表。
### 什么是 Redis?
Redis 是一个开源的内存数据库,它支持多种数据结构,如字符串、哈希、列表、集合等。Redis 的特点是速度
原创
2024-04-02 06:16:01
192阅读
# 使用 Redis 实现用户关注和粉丝功能
在现代的社交网络应用中,用户之间的关注和粉丝关系是非常重要的一部分。Redis,作为一种高性能的键值存储数据库,非常适合用来处理这类实时数据。在这篇文章中,我们将带你一步一步实现用户关注和粉丝功能。
## 流程概述
在实现之前,我们需要理清整个流程。以下是实现用户关注和粉丝功能的基本步骤:
| 步骤 | 描述
原创
2024-09-26 07:34:51
243阅读
点赞功能业务说明1、每个用户只能点一次赞,再次点击时取消点赞2、在Blog属性中增加isLike字段,用于判断当前用户是否点赞3、isLike的值从Redis中获取,可以用redis自带的持久化机制,也可以在数据库中设计表,定时持久化到数据库4、点赞功能使用的是redis的set数据结构,用set来判断当前用户是否已经存在Blog的点赞集合中5、redis中设计的具体数据结构为:key-set
转载
2023-06-30 21:47:35
204阅读
# 如何使用 Redis 实现用户关注和粉丝功能
在当今的社交平台中,用户之间的关注与粉丝关系是基础功能之一。Redis 作为一种高效的 NoSQL 数据库,能够快速地处理此类需求。下面就让我们一步步来实现“用户关注与粉丝”的功能。
## 流程概述
在实现“用户关注与粉丝”的功能之前,先了解一下整体流程:
| 步骤 | 描述
原创
2024-10-02 06:34:49
65阅读
# Redis 粉丝与相互关注的实现
在现代应用程序中,社交网络功能是吸引用户的重要元素之一,用户间的“粉丝”和“相互关注”关系尤为重要。这篇文章将介绍如何利用 Redis 来实现这一功能,详细讨论相关数据结构的设计,并通过代码示例展现具体实现过程。
## 一、介绍 Redis
Redis 是一个开源的内存数据结构存储系统,可以作为数据库、缓存和消息中间件。它的数据结构如字符串、哈希、列表、
原创
2024-10-17 13:31:56
44阅读
目录一、常用的五大数据类型:Redis键(key)二、Redis字符串(String):简介:常用命令:原子性:数据结构:三、Redis列表(List):简介:常用命令:数据结构:四、Redis集合(Set)简介:常用命令:数据结构:五、Redis哈希(Hash)简介:分析案例:常用命令:数据结构:六、Redis有序集合Zset(sorted set):简介:常用命令:数据结构:zset底层使用了
转载
2024-09-13 14:28:12
36阅读
1,非关系型数据库reidsRedis的外围由一个键、值映射的字典构成。与其他非关系型数据库主要不同在于:Redis中值的类型不仅限于字符串,还支持字符串列表,无序不重复的字符串集合,有序不重复的字符串集合,键、值都为字符串的哈希表redis提供五种数据类型:string,hash,list,set及zset(sorted set) string(字符串);list(双向链表);dict(hash
转载
2023-10-20 11:41:22
69阅读