redis连接的问题
来源:2-7 SpringBoot集成Redis
慕神3806958
2021-05-11
老师,这里属实把我搞懵了,我有三个假设,不知道对不对。
1.redis本身是单线程的,即使一次有再多请求,redis也是按照一定顺序一个一个串行处理
2.jedis提供的连接,只能提供同步操作,一个连接必须要有响应结果之后才能对其进行别的操作,所以需要连接池来让更多的请求能够同时操作,理论上连接池中连接的数量就是同一时间能够处理的请求的数量
3.Lettuce提供的连接能够让多个线程同时发出请求,反正都是到redis那里排队,所以lettuce可以不用连接池
写回答
1回答
-
首先,Redis的单线程是指在一个连接中,Redis的操作是原子性的;本身一个Jedis实例对象是不安全的,那么在并发情况下就用pool的方式去管理,让一个Jedis实例对应一个连接。因此你的理解是对的;第三点Lettuce的机制不一样,一个Lettuce实例是线程安全的,它被设计成可以在多个Redis连接中使用,也可以是同步和异步,所以一般情况下Lettuce可以不用连接池,所以你的理解最后再Redis那儿排队也对
012021-05-15
相似问题