跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 想基于 Node 撸一个短链接,各位大佬有什么建议么
未分類
3 12 月 2020

想基于 Node 撸一个短链接,各位大佬有什么建议么

想基于 Node 撸一个短链接,各位大佬有什么建议么

資深大佬 : TheZihanGu 3

基础构思基于 Node + MongoDB 或 Redis,Nginx 反代 Express 。
项目主要是自用,可能会加 Token 鉴权,因此可能不用关心 URL 审核的问题。
目前生成短链部分没有问题…主要是关于跳转的逻辑。有两种思路,一是伪静态到页面然后请求后端接口返回长链接在进行跳转,另外一种是直接 Node 从数据库取到长链接然后 Express 重定向跳转。
各位大佬能否给一些建议

大佬有話說 (27)

  • 資深大佬 : learningman

    说白了就是一个 js 跳转一个 302 呗,我个人觉得 302 好一点

  • 資深大佬 : qiayue

    短链需求是打开短链跳转到长链,最重要的指标就是跳转速度,所以如果为了追求最快速度,最好不要用数据库

  • 資深大佬 : qiayue

    上条没打完
    不仅不要用数据库,更不要用前端 js 跳转,直接后端返回 302 给浏览器即可

  • 資深大佬 : yazoox

    @qiayue #3 不用数据库的话呢,那用什么来存储短链接和实际长链接之间的关系呢?

  • 資深大佬 : zhengxiaowai

    先注册一个短的域名。。

  • 資深大佬 : qiayue

    @yazoox 用程序能够最快读取的方式

  • 資深大佬 : Junzhou

    既然生成和解析短链接没问题,那直接 302 就可以了。

  • 資深大佬 : opengps

    我已经自用好几年了,挺稳的,不过自己域名有一点不太好的就是,总有那么些地域的局部 dns 不能正常解析

  • 資深大佬 : opengps

    看到有人提醒不要用数据库,补充下,数据库当然得用,不然咋存,只是作为很少变更的用途,用缓存多挡一层为佳。试试证明短链接压力再大,也比一个页面处理上百 k 轻松,单服务器可以轻松承载很大的并发访问量

  • 資深大佬 : xcstream

    直接 302

  • 資深大佬 : jiangzm

    需求太简单了,而且要求跳转速度,所以最好不要用 node 层,直接 nginx+redis 模块干就完事,如果一定要用 node 也不要 Express 原生的 node 就好了。

  • 資深大佬 : jiangzm

    写入肯定要用数据库,读取可以不用数据库,同步也不要放在读取端。

  • 資深大佬 : huayumo

    如果是我的话,也没有特殊需求的话,我就数据库直接搞了

  • 資深大佬 : imdong

    短网址,特别是自己用的,太容易了,怎么简单怎么快就怎么来。

    这个随便搞一搞都不会太差,核心代码无非取出 ID,连接数据库,查出结果,header 302 搞定。

    想速度快,就加一层 Redis 缓存就好了,如果是 node,都不用存 redis,取出来直接放数组就好了,没有就去查数据库。

    连 Redis 都没必要,直接存内存不香么。

  • 資深大佬 : forgottencoast

    速度快、速度快,是不是 1 秒钟上百亿的资金流动?
    能到这里来问问题的,数据库就够了,简单好用,先解决业务问题。
    node 进程内加个内存缓存针对高命中的短链就可以了。

  • 資深大佬 : kingfalse

    直接 nginx lua redis 比较好吧

  • 主 資深大佬 : TheZihanGu

    @zhengxiaowai 已经整了一个四位已备域名了,就是备案翻了就不好了

  • 資深大佬 : datou

  • 資深大佬 : pytth

    我这个,没有存数据库,直接就是存本地数组。http://o1o.run

  • 資深大佬 : lihongming

    哈哈,这是老外最喜欢考的面试题——假设你是 Twitter 的短网址开发者,你要怎么设计你的系统?

    主要考点是数据库的选型、分区、分片、缓存、扩展、容量估算等。考得确实是数据库,主不要灰心。

    YouTube 上有很多这种题的面试经,基本也是围绕数据库问题在讨论。

  • 資深大佬 : netnr

    一个 id 生成一个文件,内容写入链接,不知道相比数据库咋么样

  • 資深大佬 : securityCoding

    @netnr 肯定慢很多啊

  • 資深大佬 : chogath

    关键词: 数据库、唯一索引(通常是自增主机 ID )、缓存层( Redis )

  • 資深大佬 : qwerthhusn

    如果会 LUA 的话最好,直接 Nginx 撸一个

  • 資深大佬 : libook

    直接返回 302 最简单。

    先做个 MVP 方案出来,根据实际使用中遇到的问题再做优化就好。

  • 資深大佬 : simon3000

    数据库方面推荐一个 kv 的:LevelDB

  • 主 資深大佬 : TheZihanGu

    @qwerthhusn 问题是太菜了,不会撸

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具