【Redis】Java客户端操作reids数据库
目录
一、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(""); // passwordjedis.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);// 设置最长等待时长 msjedisPoolConfig.setMaxWaitMillis(200);jedisPool = new JedisPool(jedisPoolConfig,"101.42.161.165",6379,1000);}// 提供接口外部访问获取连接public static Jedis getConnection() {return jedisPool.getResource();} }