Nest.js进阶系列四:Node.js中使用Redis原来这么简单!

大厂技术  高级前端  Node进阶

点击上方 程序员成长指北,关注公众号

回复1,加入高级Node交流群

前言

大家好,我是 koala,一个有趣且乐于分享的人,这是 Nest.js 实战系列第四篇,我要用真实的场景让你学会使用 Node 主流框架。

回顾一下【Nest入门系列文章】

前面Nest.js系列的文章中我们其实留了两个可以用redis优化的地方:

  • 一个是我们的在做登录时,通过JWT已经实现了服务端生成token以及验证客户端发送的token信息。

  • 实现对文章点赞功能,采用的是将点赞数据直接写入数据库

JWT token 实现方式, 将基本信息直接放在token中,以便于分布式系统使用, 但是我们没有设置有限期(这个是可以实现的),并且服务端无法主动让token失效。而Redis天然支持过期时间,也能实现让服务端主动使token过期。

当然并不是说JWT token 不如 redis+token实现方案好, 具体看使用的场景,这里我们并不讨论二者孰优孰劣,只是提供一种实现方案,让大家知道如何实现。

1. 认识redis

对于前端的小伙伴来说,Redis可能相对比较陌生,首先认识一下

Redis是什么

Redis是一个开源(BSD许可)的,基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件,是现在最受欢迎的 NoSQL 数据库之一。

其具备如下特性:

  • 速度快

    • 单节点读110000次/s,写81000次/s

    • 基于内存运行,性能高效

    • 用 C 语言实现,离操作系统更近

  • 持久化

    • 数据的更新将异步地保存到硬盘(RDB 和 AOF

  • 多种数据结构

    • 不仅仅支持简单的 key-value 类型数据

    • 还支持:字符串、hash、列表、集合、有序集合

  • 支持多种编程语言等等

Redis 典型使用场景

缓存

缓存可以说是Redis最常用的功能之一了, 合理的缓存不仅可以加快访问的速度,也可以减少后端数据库的压力。

排行系统

利用Redis的列表和有序集合的特点,可以制作排行榜系统,而排行榜系统目前在商城类、新闻类、博客类等等,都是比不可缺的。

计数器应用

计数器的应用基本和排行榜系统一样,都是多数网站的普遍需求,如视频网站的播放计数,电商网站的浏览数等等,但这些数量一般比较庞大,如果存到关系型数据库,对MySQL或者其他关系型数据库的挑战还是很大的,而Redis基本可以说是天然支持计数器应用。

(视频直播)消息弹幕

直播间的在线用户列表,礼物排行榜,弹幕消息等信息,都适合使用Redis中的SortedSet结构进行存储。

例如弹幕消息,可使用ZREVRANGEBYSCORE排序返回,在Redis5.0中,新增了zpopmaxzpopmin命令,更加方便消息处理。

Redis的应用场景远不止这些,Redis对传统磁盘数据库是一个重要的补充,是支持高并发访问的互联网应用必不可少的基础服务之一。

纸上谈兵终觉浅,必须实战一波~

Redis的安装和简单使用,我这里就不一一介绍了,这里贴上我之前写的两篇文章:

  • Redis 安装

  • Redis入门篇-基础使用

可以快速的安装、了解Redis数据类型以及常用的命令。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值