开发者社区> 问答> 正文

Pubsub/Transaction/Pipeline分别是什么?

Pubsub/Transaction/Pipeline分别是什么?

展开
收起
游客4skzfvnrxrzbi 2022-01-04 16:29:40 1823 0
1 条回答
写回答
取消 提交回答
  • Pubsub 适合悲观锁和简单信号,不适合稳定的更新,因为Pubsub可能会丢消息。 在模糊通知方面,因为模糊匹配非常耗费 CPU,所以在引擎层面存在 CPU 瓶颈。业务侧看到的现象是:在 channel 和 client 比较多的情况下,容易造成 CPU 打满、服务夯住。

    Transaction 是一种伪事务,没有回滚条件;集群版需要所有 key 使用 hashtag 保证在同一个 slot 中,代码比较复杂,hashtag 也可能导致算力和存储倾斜;Lua 中封装了 multi-exec,但更耗费 CPU,比如编译、加载时,经常出现 Redis 引擎 CPU 打满的问题。

    Pipeline 用的比较多,如下面的示意图,实际上是把多个请求合并在一个请求里发 送,服务端一次性返回,能够有效减少 IO,提高执行效率。需要注意的是,尽量 在 Pipeline 中聚合小的命令,避免在 Pipeline 里做大 range。此外,需要注意 Pipeline 中的批量任务不是原子执行的(从来不是),所以要处理 Pipeline 中部 分命令失败的场景

    资源来源于《阿里云数据库运维实战问题改》

    https://developer.aliyun.com/topic/download?spm=a2c6h.20345107.J_6399686890.1.2e1e17dbzKUX5r&id=8198

    2022-01-04 17:59:58
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
A stream processing pipeline S 立即下载
An Online Spark Pipeline: Semi 立即下载
BUILDING REALTIME DATA PIPELINES WITH KAFKA CONNECT AND SPARK STREAMING 立即下载