Redis锁、Pipeline

  • 1.Redis锁
  • 2.Redis的pipeline


1.Redis锁

工作中遇到了一个和前后端配合的场景,前端实时更新资源时需要调用后端接口通知后端更新缓存,但是防止后端删除缓存的时候,前端疯狂请求后端导致穿库,所以对前端请求的缓存资源上锁。

(1)前端通知后端实时更新缓存,后端对redis资源上锁,读取DB,更新缓存,释放锁。

redis 事务管理 redis 事务 pipeline_数据库


(2)前段实时读取Redis资源时,需要判断资源是否上锁,上锁表示资源正在更新,但需要设置一定的超时时间。

redis 事务管理 redis 事务 pipeline_1024程序员节_02

2.Redis的pipeline

Pipeline指的是管道技术,指的是客户端允许将多个请求依次发给服务器,过程中而不需要等待请求的回复,在最后再一并读取结果即可。
管道技术使用广泛,例如许多POP3协议已经实现支持这个功能,大大加快了从服务器下载新邮件的过程。
(1) 适用于需要批量更新key的场景。
(2) Pipeline 化之后所有的请求合并为一次IO,除了时延可以降低之外,还能大幅度提升系统吞吐量。
(3) pipeline机制可以优化吞吐量,但无法提供原子性/事务保障,而这个可以通过Redis-Multi等命令实现。

redis 事务管理 redis 事务 pipeline_缓存_03