# 抖音 **Repository Path**: endung/douyin ## Basic Information - **Project Name**: 抖音 - **Description**: 抖音基础功能后端实现,使用Go语言及其gin、gorm等主流框架进行开发 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2022-06-20 - **Last Updated**: 2022-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 项目介绍 [在线文档](https://ppog0ujcyr.feishu.cn/docx/doxcnxoTSTz9IJhrPfsSwx5xkoh) [演示视频](https://ppog0ujcyr.feishu.cn/file/boxcnCNt8RowseOOKYsTvAy8ZYb) 精简版抖音后端服务,支持抖音核心操作,用户注册、登录视频推送、视频投稿、以及视频点赞评论以及关注和粉丝等功能 ## 部署 ### 一、直接运行 #### 1. 安装依赖 ```shell go mod download ``` #### 2. 修改配置文件 ```shell cd /config code config.ini # vscode 打开并编辑配置文件 或 vim config.ini # vim 打开并编辑 ``` #### 3. 运行 ```shell go run main.go ``` > 如果遇到依赖问题,一般会提示的,试试 go mod tidy ### 二、Docker部署 > 先等等吧 ## 开发指南 ### 数据库 各位小伙伴可以使用我的云数据库 > 出于安全问题不再开放 ```plain # 服务器IP mysql 8.0版本 host: xx.xx.xx.xxx:3306 # 数据库账号密码 username: test01 password: Douyintest01. username: test02 password: Douyintest02. ``` 可以使用 Goland 自带的 `Database` 工具 直接连接,可视化操作也很方便,大可不必再用其他的工具 ### 依赖说明 > 简单介绍此项目所需的一些第三方库,以及选型原因 #### gorm [官网地址](https://gorm.io/zh_CN/docs/index.html) 目前主流 GO 开源ORM 框架 #### gin [官网地址](https://gin-gonic.com/zh-cn/docs/introduction/) 主流 Web 服务框架,简单易用,功能强大 #### validator [项目地址](https://github.com/go-playground/validator) 具体用法可以参考官方给的demo #### gini [官网地址](https://ini.unknwon.io/docs) 解析项目运行的配置参数,简单易用 ### 部分细节实现 #### 生成全局唯一 id生成器 项目初期直接使用第三方库,后期使用 `Go` atomic 包相关操作 #### 本地单机缓存 使用 LRU 缓存淘汰策略作为淘汰算法 缓存不命中时,加载 mySQL里面的数据,命中时执行更新 被淘汰时,进行持久化,即刷新数据到 mySQL #### 基于上面的缓存算法实现对登录IP的限制(设想) #### 分库分表实现(设想)