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