# Redis

支持在云函数用使用 Redis。

# 前置要求

已经开通云开发。

# 功能特性

提供兼容 Redis 协议的缓存数据库,具备高可用、高可靠、高弹性等特征。

# 适用场景

云开发的数据库满足不了业务的需求,需要使用到 Redis。

已有的业务使用了 Redis,业务迁移到云开发中,希望继续使用 Redis。

# 安装程序

! 微信小程序开发者请使用【其他登录方式】-【微信公众号登录】登录,再选择关联的小程序账户登录;QQ 小程序开发者可直接通过 QQ 小程序开发者 IDE【云开发】按钮登录,也可以通过关联的腾讯云账户登录。

您可以通过 云开发控制台,来安装和管理该能力。

# 使用程序

根据实际情况,推荐使用redisioredis

调用示例

云函数中使用:


'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 的最大连接数较小,减少连接数多内存的占用