- 1. Jedis
- 1.1 认识Jedis
- 1.2 连接Jedis
- 1.3 简单使用
- 1.4 Jedis连接池使用
- 与直连对比
- 简单使用
- 连接池配置
- 1. 资源数控制
- (1)适合的maxTotal
- (2)适合的maxIdle 和minIdle
- 2. 借还参数
- 3. 常见问题
- (1)超时连接
- (2)资源耗尽
- 4. 解决思路
- 5. 常见问题案例演示
- 2. lettuce
- 3. redis -py(Pathon客户端)
- 3.1 获取redis-py
- 3.2 基本使用
- 4. go语言客户端
- 4.1 Redigo客户端选择
- 3.2 连接
- 3.3 基本使用
-
**使用java操作redis的一个中间件,Redis 官方推荐的 java连接开发工具 **
-
Jedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。
-
使用jedis对象,操作方法函数与redis的api完全一致
redis.clients jedis 4.1.1
public class TestPing {
public static void main(String[] args) {
// 1、 new Jedis 对象即可
Jedis jedis = new Jedis("127.0.0.1", 6379);
// jedis 所有的命令就是我们之前学习的所有指令!所以之前的指令学习很重要
String response = jedis.ping();
System.out.println(response); // PONG
}
}
1.2 连接Jedis
- 每次相当于一个TCP连接,线程是不安全的
- 不用每次进行TCP连接的三次握手,四次挥手
- 其实maxTotal属性所表示的最大连接数,只是给出了一个连接数量的上限,
- 而maxIdle属性所代表的最大空闲的连接数,才真正是业务可用的最大连接数。
- 如果maxTotal和maxIdle二者不相等,就会涉及到连接的销毁与创建操作,会产生一定的开销,所以建议设置maxIdle=maxTotal,尽可能的避免由于频繁地创建和销毁连接而造成连接池性能下降,使连接池能够达到最佳性能。
- maxWaitMillis设置参数问题
- maxIdle 和minIdle设置不相等的情况
- 连接泄露-没有关闭连接
-
在 SpringBoot2.x 之后,原来使用的jedis 被替换为了 lettuce?
-
jedis : 采用的直连,多个线程操作的话,是不安全的,
- 如果想要避免不安全的,使用 jedis pool 连接池! 更像 BIO(阻塞) 模式
-
lettuce : 采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!
- 可以减少线程数据了,更像 NIO 模式



