码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Node.js实战】一文带你开发博客项目之登录(前置知识)


    个人简介

    👀个人主页: 前端杂货铺
    🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端
    📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
    🚀未来打算: 为中国的工业软件事业效力n年
    🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js
    🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

    Node.js系列文章目录

    内容参考链接
    Node.js(一)初识 Node.js
    Node.js(二)Node.js——开发博客项目之接口
    Node.js(三)Node.js——一文带你开发博客项目(使用假数据处理)
    Node.js(四)Node.js——开发博客项目之MySQL基础
    Node.js(五)Node.js——开发博客项目之API对接MySQL

    文章目录

    • Node.js系列文章目录
      • 一、前言
      • 二、cookie、session、redis
        • 1、cookie
        • 2、session
        • 3、redis
        • 4、为什么 session 适合用 redis?
        • 5、为何网站数据不适合用 redis?
      • 三、安装 redis
      • 四、nodejs 连接 redis 的测试
      • 五、写在最后


    一、前言

    登录功能一般都是有 约定俗成的方法 的。

    在这里我们使用 session 的方式 去实现登录功能!

    二、cookie、session、redis

    1、cookie

    • 存储在浏览器的一段字符串(最大 4kb)
    • 跨域不共享
    • 格式如 k1=v1;k2=v2;k3=v3; 因此可以存储结构化数据
    • 每次发送 http 请求,会将请求域的 cookie 一起发送给 server
    • server 可以修改 cookie 并返回给浏览器
    • 浏览器中也可以通过 JavaScript 修改 cookie(有限制)

    2、session

    • 单独使用 cookie 会暴露 username,很危险
    • 如何解决:cookie 中存储 userid,server 端对应 username
    • 解决方案:session,即 server 端存储用户信息

    在这里插入图片描述

    3、redis

    • web server 最常用的缓存数据库,数据存放在内存中
    • 相比于 mysql,访问速度快(内存和硬盘不是一个数量级的)
    • 但成本更高,可存储的数据量更小(内存的硬伤)
    • 将 web server 和 redis 拆分为两个单独的服务
    • 双方都是独立的,都是可扩展的(例如都扩展成集群)
    • (包括 mysql,也是一个单独的服务,也可扩展)

    在这里插入图片描述

    4、为什么 session 适合用 redis?

    • session 访问频繁,对性能要求极高
    • session 可不考虑断电丢失数据的问题(内存的硬伤)
    • session 数据量不会很大(相对于 mysql 中存储的数据)

    5、为何网站数据不适合用 redis?

    • 操作频率不是太高(相比于 session 操作)
    • 断电不能丢失,必须保留
    • 数据量太大,内存成本太高

    三、安装 redis

    安装 redis 参考链接

    有以下内容输出,即安装成功:

    在这里插入图片描述

    blog.csdnimg.cn/c9759ae9b1524ba88c49ffab17264cbe.png)

    四、nodejs 连接 redis 的测试

    创建 redis-test 文件夹,控制台输入 npm init -y 进行初始化,并创建 index.js 文件

    在这里插入图片描述

    安装 redis

    npm i redis
    
    • 1

    index.js 文件

    • 导入 redis 模块
    • 创建客户端并连接(端口号,服务端地址)
    • 退出
    const redis = require('redis')
    
    !(async function () {
        // 创建客户端
        const redisClient = redis.createClient(6379, '127.0.0.1')
    
        // 连接
        await redisClient.connect()
            .then(() => console.log('redis connect success!'))
            .catch(console.error)
            
        // set
        await redisClient.set('myname', 'zahuopu')
        
        // get
        const myname = await redisClient.get('myname')
        console.log('myname', myname)
        
        // 退出
        redisClient.quit()
    })()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    开启 redis 服务,终端运行文件:

    在这里插入图片描述

    五、写在最后

    至此,我们明白了为什么要把 session 存入 redis,并对 redis 做了连接的测试。继续跟进学习吧!

    后续会对该项目进行多次重构【多种框架(express,koa)和数据库(mysql,sequelize,mongodb)】

    如果你需要该项目的 源码,请通过本篇文章最下面的方式 加入 进来~~


    在这里插入图片描述


  • 相关阅读:
    基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊
    【Java ee】Servlet的生命周期及线程安全
    释放搜索潜力:基于ES(ElasticSearch)打造高效的语义搜索系统,让信息尽在掌握[2.项目讲解篇],支持Linux/Windows部署安装
    解决在部署springboot项目的docker中执行备份与之相连接的mysql容器命令
    Java基于微信小程序的4S店汽车保养小程序
    正大国际期货:投资外盘期货如何运用K线图中十字星形态?
    15 | Spark SQL 的 SQL API 操作
    【java学习—七】多态性(34)
    MySQL学生成绩管理系统based on C++ and Clion
    Microsoft Office Word 远程命令执行漏洞(CVE-2022-30190)分析与利用
  • 原文地址:https://blog.csdn.net/qq_45902692/article/details/127647374
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号