Redis
支持在云函数用使用 Redis。
前置要求
已经开通云开发。
功能特性
提供兼容 Redis 协议的缓存数据库,具备高可用、高可靠、高弹性等特征。
适用场景
云开发的数据库满足不了业务的需求,需要使用到 Redis。
已有的业务使用了 Redis,业务迁移到云开发中,希望继续使用 Redis。
安装程序
! 微信小程序开发者请使用【其他登录方式】-【微信公众号登录】登录,再选择关联的小程序账户登录;QQ 小程序开发者可直接通过 QQ 小程序开发者 IDE【云开发】按钮登录,也可以通过关联的腾讯云账户登录。
您可以通过 云开发控制台,来安装和管理该能力。
使用程序
调用示例
云函数中使用:
'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
}
}
其它
云函数的运行机制
私有网络 VPC
在云函数中,开发者如果需要访问腾讯云的 Redis 等资源,推荐使用私有网络来确保数据安全及连接安全。关于私有网络、以及如果建立私有网络和云函数加入私有网络,可以参考云数据库 Redis 配置网络中的相关章节。
云函数并发数 & Redis 连接数
在云开发控制台-环境总览中可以看到当前环境所允许的云函数并发数的最大值,最大并发数也是云函数的最大实例。
关于 Redis 连接,推荐阅读 Redis 官方博客的博文Redis Clients Handling。
Redis 连接数的配置参数maxclients
,默认是 10000,如果需要修改请联系客服。
云函数中使用 Redis,每个云函数实例与 Redis Server 都会有连接,那么此云函数与 Redis 的最大连接数是,单个实例的最大连接数*实际运行的最大并发数;在配置 Redis 的maxclients
的时候,此参数应该大于,使用此数据库的所有云函数的最大连接数之和。
因此,在云函数中使用 Redis,建议您将使用到同一个 Redis 实例的所有读写 Redis 的代码集中到一个云函数中,这样做有两个好处
- 云函数出现冷启动的概率比较低
- Redis 的最大连接数较小,减少连接数多内存的占用