Openresty

  1. set_by_lua
  2. rewrite_by_lua
  3. access_by_lua
  4. content_by_lua
  5. header_filter_by_lua
  6. body_filter_by_lua
  7. log_by_lua
  • lua-resty-lock模块

  为了解决高并发下缓存失效后引发的雪崩效应,可以使用lua-resty-lock(异步非阻塞锁)来解决这个问题。lua-resty-lock是一个基于Nginx共享内存(ngx.shared.DICT)的非阻塞锁(基于Nginx的时间事件实现),说它是非阻塞的是因为它不会阻塞Nginx的worker进程,当某个key(请求)获取到该锁后,后续试图对该key再一次获取锁时都会『阻塞』在这里,但不会阻塞其它的key。当第一个获取锁的key将获取到的数据更新到缓存后,后续的key就不会再回源后端应用了,从而可以起到保护后端应用的作用。

       详细的api文档请参考:https://github.com/openresty/lua-resty-lock#for-cache-locks

上一篇:115网盘有资源分享你懂


下一篇:openresty 连接redis