目录
一、Java客户端分类
1、Jedis
2、lettuce
3、Redisson
二、Jedis
三、reids连接池
一、Java客户端分类
Redis提供了多个版本的Java客户端,其中推荐使用Jedis、lettuce、Redisson。
1、Jedis
Jedis他以命令作为方法名称,学习成本低,简单实用。但是他的缺陷是他是线程不安全的,在多线程环境下需要使用连接池
2、lettuce
他是基于Netty实现的,支持同步、异步、响应式的编程,且线程安全。它还支持redis的哨兵模式、集群模式、管道模式
3、Redisson
他是基于Redis实现的分布式、可伸缩的Java数据结构集合。包含了诸如Map、Queue、Lock等强大的功能
二、Jedis
此处我们使用Jedis进行操作Redis,有以下步骤:建立连接---进行操作---关闭连接
我们需要先创建maven项目,然后引入依赖
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
</dependencies>
然后我们就可以使用Jedis了
public class Connect {
private Jedis jedis;
public void setUp() {
// 1.建立连接
jedis = new Jedis("IP",6379); // ip port
//jedis.auth(""); // password
jedis.select(0); // 数据库
// 2.编写代码
String result = jedis.set("name1","amy");
System.out.println("创建key:" + result);
String name = jedis.get("name1");
System.out.println("读取key:" + name);
// 3.释放资源
jedis.close();
}
由于他的方法与redis命令相同,所以在使用时,我们可以直接输入对应的命令作为方法使用即可
三、reids连接池
上述代码在单线程环境下可以使用,但是在多线程环境下需要给每个线程创建连接,频繁的创建于销毁连接对性能是损耗,所以推荐使用连接池获取连接
public class Pool { private static final JedisPool jedisPool; static { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // 最大连接 jedisPoolConfig.setMaxTotal(8); // 最大空闲连接 jedisPoolConfig.setMaxIdle(8); // 最小空闲连接 jedisPoolConfig.setMinIdle(0); // 设置最长等待时长 ms jedisPoolConfig.setMaxWaitMillis(200); jedisPool = new JedisPool(jedisPoolConfig,"101.42.161.165",6379,1000); } // 提供接口外部访问获取连接 public static Jedis getConnection() { return jedisPool.getResource(); } }