测试了一下,在腾讯云上海地域的云函数,通过公网操作广州地域的 redis,耗时大概是 35ms 左右,这是在 redis 实例复用的情况下,如果 redis 需要重新建立连接,耗时大概是 75ms,即建立连接也要 30ms 左右。如果走内网,已经建立连接的情况下好像不用 1ms,重新建立连接好像也才几毫秒。
用 ioredis 连接腾讯云 redis,在云函数中如果不复用连接,需要主动 redis.quit(),如果复用,请参考《腾讯云函数连接 mongoDB 的正确方法:保持数据库连接而不超时》最后的总结部分。
redis 不同地域内网默认不互通,不同地域如果要开通内网访问,需要使用腾讯云的云联网服务,云联网把不同地域的 VPC 关联在一起,所以位于两个不同 VPC 的服务可以互相访问。云联网服务通过带宽收费,免费额度的带宽是 0.01Mbps,仅用于测试连通性,不可能用于业务逻辑。
以下是 redis 支持的部分数据类型:
sismember 判断某个元素是否存在;pfadd 往某个 key 添加字符串,然后使用 pfcount 可以获得往这个 key 添加了多少个唯一的字符串;常用 redis 命令:
expire:设置一个 key 的缓存有效期;sadd:添加一个元素到一个 set;scard:计算一个 set 有多少个元素,card 是 cardinality 的简写;zadd:添加一个元素到 sorted set;zcard:计算一个 sorted set 有多少个元素;zcount:类似 zcard,但支持计算位于某个 score 范围内的元素数量;sismember:判断一个元素是不是某个 set 的 member;zscore:获取某个元素的 score,也可以用来判断元素是否在 sorted set 中;incr:为某个 key 增加 1;incrby:为某个 key 增加一个指定的整数;incrbyfloat:增加一个小数;hset:添加一个 hash;hget:获取一个 hash 中某个 key 的 value;hmget:获取一个 hash 中多个 key 的 value;hgetall:获取一个 hash 的所有 key 的 value;hdel:删除一个 hash 中某个 key 及其 value;hincrby:为 hash 中某个元素增加一个整数;hincrbyfloat:为 hash 中某个元素增加一个小数;pfadd:增加元素到某个 hyperloglog;pfcount:返回某个 hyperloglog 的计数;相关文章: