测试了一下,在腾讯云上海地域的云函数,通过公网操作广州地域的 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 的计数;相关文章: