一.jedis的基本使用
1. jedis的介绍
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis。
Jedis就是使用Java操作Redis的客户端(工具包)
文档地址:http://xetorthio.github.io/jedis/
官方API文档查询方式:
2. Jedis的使用步骤
- 导入jar
- 创建Jedis对象(类似Connection)
- 操作Redis
- 释放资源
3.Jedis的入门
需求: 使用java代码操作Redis 进行增(改)删查
步骤:
- 创建jedis对象
- 操作Redis(增删查)
- 释放资源
@Test
// 不使用池子,直接操作
public void fun01() {
// 1. 创建Jedis对象 new, 看静态方法
String host = "localhost";
int port = 6379;
Jedis jedis = new Jedis(host, port);//jedis就相当于JDBC里面的connection
// 2. 操作redis数据库
//2.1 存 set key value
//jedis.set("bkey", "哈哈哈");
//2.2取 get key
//System.out.println(jedis.get("akey"));
//2.3 删除 del key
jedis.del("akey");
System.out.println(jedis.get("akey"));
// 3. 释放资源
jedis.close();
}
二.4 jedis连接池的使用
1.jedis连接池的基本概念
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术,jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,而是从连接池中获取一个资源进行redis的操作,使用完毕后,不需要销毁该jedis连接资源,而是将该资源归还给连接池,供其他请求使用。
2.jedis连接池的使用
需求: 从Jedis的连接池里面获得jedis
步骤:
- 创建jedis池子配置对象
- 创建jedis池子对象(依赖配置对象)
- 从池子里面获得jedis
- 操作redis
- 释放资源
@Test
// 使用池子来获得jedis jedis当做方便面 开工厂 张三 100个工人 李四
public void fun01() {
//0 创建池子配置对象
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(10);//设置最大连接数量(可以不配...)
String host = "localhost";
int port = 6379;
//1. 创建Jedis池子对象
JedisPool jedisPool = new JedisPool(poolConfig, host, port);
//2. 从池子里面获得jedis
Jedis jedis = jedisPool.getResource();
//3. 操作redis数据库
//3.1 存
//jedis.set("ckey", "ccc");
//3.2 取
//System.out.println(jedis.get("ckey"));
//3.3 删除
jedis.del("ckey");
//4. 释放
jedis.close();
jedisPool.close();
}
Jedis工具类的抽取(使用连接池)
//目的: 1.保证池子只有一个 2. 获得jedis对象
public class JedisUtils {
private static JedisPoolConfig poolConfig ;
private static JedisPool jedisPool;
//java机制,当前类一加载,静态代码块就会加载, 只加载一次
static {
// 0 创建池子配置对象
poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(10);// 设置最大连接数量(可以不配...)
String host = "localhost";
int port = 6379;
// 1. 创建Jedis池子对象
jedisPool = new JedisPool(poolConfig, host, port);
}
//私有构造
private JedisUtils() {
}
public static Jedis getJedis() {
// 2. 从池子里面获得jedis
Jedis jedis = jedisPool.getResource();
return jedis;
}
}
3.jedis的方法
方法 | 解释 |
---|---|
new Jedis(host, port) | 创建jedis对象,参数host是redis服务器地址,参数port是redis服务端口 |
set(key,value) | 设置字符串类型的数据 |
get(key) | 获得字符串类型的数据 |
hset(key,field,value) | 设置哈希类型的数据 |
hget(key,field) | 获得哈希类型的数据 |
lpush(key,values) | 设置列表类型的数据 |
lpop(key) | 列表左面弹栈 |
rpop(key) | 列表右面弹栈 |
del(key) | 删除指定的key |