开源项目SDK:https://github.com/mingyang66/spring-parent
个人文档:https://mingyang66.github.io/raccoon-docs/#/
spring-boot-starter-data-redis: 使用传统的基于阻塞的I/O编程模型,这意味着当你调用Redis操作时,线程将会被阻塞,知道操作完成,这在高并发场景下可能会导致线程资源的良费和响应时间的增加。
spring-boot-starter-data-redis-reactive: 使用响应式编程模型,在响应式编程中,你的操作是异步的,并且基于事件驱动;你可以继续处理其他的事情,而不必等待Redis操作完成;当Redis操作完成时,结果会被发送到一个回调函数或订阅者。
上述描述是spring-boot-starter-data-redis只支持阻塞模式,而不支持基于reactive的响应式编程,但是我通过研究源码及实际操作验证spring-boot-starter-data-redis是支持基于ractive的响应式编程的,并且spring-boot-starter-data-redis和spring-boot-starter-data-redis-reactive两个starter启动器依赖的jar包都是一样的,都依赖了ractor-core,所以个人认为这两个启动器支持的功能都是一样的,没有什么具体的区别。
- spring-boot-starter-data-redis包依赖
sh
|------spring-boot-starter-data-redis
| |------lettuce-core
| | |------netty-common
| | |------netty-handler
| | |------netty-transport
| | |------reactor-core
| |------spring-boot-starter
| |------spring-data-redis
- spring-boot-starter-data-redis-reactive包依赖
sh
|------spring-boot-starter-data-redis-reactive
| |------lettuce-core
| |------reactor-core
| |------spring-boot-starter
| |------spring-data-redis