OpenResty+lua+redis实现多级缓存
OpenResty+lua+redis实现多级缓存 一、需求 ngx_openresty是一个基于 NGINX的lua可编程模块,在性能方面有着出色的性能,配合redis做二级缓存效果,nginx开启一级本地缓存。 实验数据库sql...
OpenResty+lua+redis实现多级缓存 一、需求 ngx_openresty是一个基于 NGINX的lua可编程模块,在性能方面有着出色的性能,配合redis做二级缓存效果,nginx开启一级本地缓存。 实验数据库sql...
前言 在上一篇专栏中,分析了JDK动态代理的实现,而这一篇就是分析cglib动态代理的实现,建议先看上一篇专栏再看这一篇,因为两者之间都是大同小异的,但是JDK动态代理会更加好理解一点,换言之,也就是cglib比较难,不过理解了JDK动态代...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
前言 在java中,动态代理分为两类: 基于接口的JDK动态代理 基于类的CGlib动态代理 而今天我要讲的是前者,基于接口的动态代理。动态代理在框架中的应用非常广泛,理解了动态代理,对spring,mybatis等常用框架的源码阅读也非常...
前言 之前把《现代操作系统》的前四章看完了,收获还是很大的,尤其在进程管理那一章让我明白了并发在操作系统上是如何控制的。所以,由此也引发了这一篇源码解析文章的创作。原本是打算写AQS的源码解析的,但是最近项目比较忙,没有时间,只能先写比较简...
前言 最近在做公司的一个新项目,采用了spring security作为认证和授权的框架。用了三天时间,完成了: 账户密码登录 jwt url级别的权限访问 其实之前的一个项目也用过,但是基本上都是ctrl + c,ctrl + v。没有太...
什么是WebSocket? WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工 (full-duplex) 通信—允许服务器主动发送信息给客户端。 为什么需要WebSocket? 大家都知道以前客户端想...
session 是服务器用来保存用户操作的一系列会话信息,由 Web 容器进行管理。单机情况下,不存在 session 共享的情况,分布式情况下,如果不进行 session 共享会出现请求落到不同机器要重复登录的情况 。单点登录可以用 co...
上篇 《SpringBoot 集成 redis 分布式锁优化》对死锁的问题进行了优化,今天介绍的是 redis 官方推荐使用的 Redisson ,Redisson 架设在 redis 基础上的 Java 驻内存数据网格(In-Memory...
继上一篇 SpringBoot 集成 redis 分布式锁 写到最后,我们发现这种分布式锁也存在着缺陷,如果A在 setnx 成功后,A成功获取锁了,也就是锁已经存到 Redis 里面了,此时服务器异常关闭或是重启,将不会执行我们的设置过期...
继上一篇 SpringBoot 整合 redis 踩坑日志之后,又学习了 redis 分布式锁,那为什么需要分布式锁? redis 分布式锁原理 在传统单体应用单机部署的情况下,可以使用 Java 并发相关的锁,如 ReentrantLco...