最佳实践丨在云函数内使用 Redis 扩展

什么时候应该使用 Redis? Redis 的适用场景包括但不仅限于:

  • 计数器:因为 Redis 操作是原子性的,通过原子递增或递减来做高并发用户的数据计数,比如点赞数、收藏数、分享数、商品抢购时的库存量、商品文章总数、评论数量等;
  • 排行榜:Redis 支持集合和有序集合的数据结构,且运行在内存中,因此可以存储一些类似于排行榜的数据,比如最近、最热、点击率最高、活跃度最高、评论最多等等的文章、商品、用户等;
  • 哈希表:用户粉丝列表、用户点赞列表、用户收藏列表、用户关注列表等;
  • 自动排序:存储时间戳,随着时间的变化,按照用户关注用户的最新动态列表等自动排序;
  • 会话缓存:使用 Redis 进行会话缓存,将 web session 存放在 Redis 中;
  • 全页缓存 FPC:可以将服务端渲染结果的缓存在 Redis 中;
  • 记录用户操作信息:用户是否点赞、用户是否收藏、用户是否分享等。
安装 Redis 拓展 1、安装扩展 打开腾讯云控制台,进入到环境详情页面,点击左侧的「扩展应用」,进入到扩展能力详情页,并点击 Redis 拓展,安装拓展。
最佳实践丨在云函数内使用 Redis 扩展
文章图片

2、创建 Redis 实例 倘若安装中没有实例(即还没有购买 Redis 数据库,点击新建实例),倘若已经有实例的可以跳过,进入下一步。
最佳实践丨在云函数内使用 Redis 扩展
文章图片

购买 Redis 数据库,创建实例,配备好私有网络。
最佳实践丨在云函数内使用 Redis 扩展
文章图片

创建好实例后回到扩展选择刚刚创建(或者已有的)的实例:
最佳实践丨在云函数内使用 Redis 扩展
文章图片

点击完成创建:
最佳实践丨在云函数内使用 Redis 扩展
文章图片

看到有如下扩展即安装成功:
最佳实践丨在云函数内使用 Redis 扩展
文章图片

3、获取 Redis 信息 创建好后查看拓展相关信息(在这里面我们便可以看到一起创建好的云函数啦):
最佳实践丨在云函数内使用 Redis 扩展
文章图片

在云函数中使用 Redis 云函数内可以通过 Redis 客户端连接和操作 Redis 实例,推荐使用。
1、安装依赖 首先进入到 Redis 的云函数目录中,然后执行命令 npm init -y 初始化一个配置文件。
随后,执行 npm install --save redis 来安装相应的依赖。
安装完成后,云函数目录下将会出现 package.json 文件,内容类似以下:
{ "name": "redis", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "redis": "^3.0.2" } }

2、调用 Redis 接下来可以在代码中调用 Redis 数据库了。
由于使用了云开发的 Redis 拓展,系统运行环境中会自动带上相应的配置,你可以直接使用相应的环境变量来链接 Redis 数据库。
'use strict'; const redis = require('redis')let client = redis.createClient({ host: process.env.HOST, port: process.env.PORT, // 需要填写真实的密码 password: 'xxx' })exports.main = async (event, context, callback) => { let res = await new Promise((resolve, reject) => { client.get('test', function (err, reply) { if (err) { resolve({ err }) } resolve({ data: reply.toString() }) }) }) return { res }}

产品介绍 【最佳实践丨在云函数内使用 Redis 扩展】云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等serverless化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
开通云开发:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
产品文档:https://cloud.tencent.com/product/tcb?from=12763
技术文档:https://cloudbase.net?from=10004
技术交流群、最新资讯关注微信公众号【腾讯云云开发】

    推荐阅读