redis连接的问题

来源:2-7 SpringBoot集成Redis

慕神3806958

2021-05-11

老师,这里属实把我搞懵了,我有三个假设,不知道对不对。
1.redis本身是单线程的,即使一次有再多请求,redis也是按照一定顺序一个一个串行处理
2.jedis提供的连接,只能提供同步操作,一个连接必须要有响应结果之后才能对其进行别的操作,所以需要连接池来让更多的请求能够同时操作,理论上连接池中连接的数量就是同一时间能够处理的请求的数量
3.Lettuce提供的连接能够让多个线程同时发出请求,反正都是到redis那里排队,所以lettuce可以不用连接池

写回答

1回答

InCowboy

2021-05-13

首先,Redis的单线程是指在一个连接中,Redis的操作是原子性的;本身一个Jedis实例对象是不安全的,那么在并发情况下就用pool的方式去管理,让一个Jedis实例对应一个连接。因此你的理解是对的;第三点Lettuce的机制不一样,一个Lettuce实例是线程安全的,它被设计成可以在多个Redis连接中使用,也可以是同步和异步,所以一般情况下Lettuce可以不用连接池,所以你的理解最后再Redis那儿排队也对

0
1
慕神3806958
非常感谢!
2021-05-15
共1条回复

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程