长连接
- 定义:在同一个进程下进行多次命令发送,只需要发起一次连接请求
- 优势:减少连接redis的次数,从而减少命令执行的时间,减少系统开销
- 劣势:
- 如果该连接一直不产生活动,容易出现time_out错误
- 长期占用一个redis连接
- 高并发场景请求被串行(redis是单进程模式,例如一个php-fpm进程能处理多个请求,而redis需要一个个进行处理)
短连接
- 定义:每次发起命令都需要进行一次连接,命令执行完之后,释放连接
优势:及时释放连接,不占用redis连接数
劣势:每个命令执行都需要进行一次连接,延长命令执行时间,连接释放等操作需要占用内存,开销比较大
应用
- 长连接主要用于少数客户端与服务端的频繁通信,因为这时候如果用短连接频繁通信常会发生Socket出错,并且频繁创建Socket连接也是对资源的浪费
- 太多持久连接,大部分是sleep状态的,或者系统是高并发的,使用短连接更合适