연결 종료 |
2.2 Jedis의 기본 작업
작업 단계:
Jedis 객체 생성, 서버 주소 및 포트 번호 지정
쓰기
문자열 형식 데이터를 서버에 설정, person=Zhang San
lpush로 목록 형식 데이터 추가 , 도시=주하이, 선전, 광저우
서버에서 위 데이터를 읽고 출력을 인쇄합니다
get 문자열 값을 가져옵니다
lrange 목록의 모든 목록 요소를 가져옵니다
Jedis 개체를 닫고 해제합니다. resources
클라이언트를 통해 데이터베이스에 데이터가 있는지 확인
콘솔 출력:
데이터베이스 내
Code:
package com.itheima.jedis;
import redis.clients.jedis.Jedis;
import java.util.List;
/**
* 使用Jedis向redis中添加string和list,读取它们的值
*/
public class Demo1 {
public static void main(String[] args) {
//创建Jedis连接对象
Jedis jedis = new Jedis("localhost", 6379);
//添加string类型
jedis.set("person", "张三");
//添加list类型
jedis.lpush("cities", "广州","上海","东莞");
//读取string类型
String person = jedis.get("person");
//读取list类型
List<String> cities = jedis.lrange("cities", 0, -1);
//输出到控制器上
System.out.println("person:" + person);
System.out.println("cities:" + cities);
//关闭连接对象
jedis.close();
}
} 로그인 후 복사
3. Jedis 연결 풀 사용
3.1 기본 개념 Jedis 연결 풀
jedis 연결 리소스의 생성과 파괴는 프로그램 성능을 많이 소모하므로 jedis는 jedis 연결 풀 기술을 제공합니다. jedis
연결 풀은 일부 연결 개체를 초기화하여 연결 풀에 저장합니다. jedis 연결 리소스를 사용할 때는 필요하지 않지만, redis 작업을 수행하려면 연결 풀에서 리소스를 얻어야 합니다. 사용 후에는 jedis 연결 리소스
를 삭제할 필요가 없지만 다른 요청에서 사용할 수 있도록 연결 풀에 리소스를 반환합니다.
3.2Jedis 연결 풀 API
JedisPoolConfig 구성 클래스 |
기능 설명 |
JedisPoolConfig() | 구성 객체 생성 및 매개변수 없는 생성자 메서드 사용 |
void setMaxTotal() | 연결 풀의 최대 연결 수 설정 |
void setMaxWaitMillis() | 연결 개체 Jedis를 가져오기 위한 최대 대기 시간 설정 |
제디스풀 연결 풀 수업 |
Description
|
JedisPool(구성 개체, 서버 이름, 포트 번호) | 연결 풀 생성
매개변수 1 : 위의 구성 객체, 매개 변수 2 : 서버 이름, 매개 변수 3 : 6379
|
jedis getResource () | 연결 풀에서 Jedis 연결 객체를 얻습니다. void close( )
|
연결 풀 종료 방법, 일반적으로 연결 풀은 닫히지 않습니다.
3.3JedisPool的基本使用
需求:
使用连接池优化jedis操作
开发步骤
创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒
通过配置对象做为参数,创建连接池对象
从连接池里面获取jedis连接对象,执行redis命令。
执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒
执行redis命令smembers读取集合中的数据
输出读取的数据
关闭连接对象(通常连接池不关闭)
运行效果
执行代码
package com.itheima.jedis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.Set;
/**
* 创建Jedis连接池
*/
public class Demo2 {
public static void main(String[] args) {
//1) 创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxWaitMillis(2000);
//2) 通过配置对象做为参数,创建连接池对象
JedisPool pool = new JedisPool(config, "localhost", 6379);
//3) 从连接池里面获取jedis连接对象,执行redis命令。
Jedis jedis = pool.getResource();
//4) 执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒
jedis.sadd("students", "白骨精", "孙悟空", "猪八戒");
//5) 执行redis命令smembers读取集合中的数据
Set<String> students = jedis.smembers("students");
//6) 输出读取的数据
System.out.println(students);
//7) 关闭连接对象(通常连接池不关闭)
jedis.close();
pool.close();
}
} 로그인 후 복사
4.案例:编写jedis连接池工具类
4.1相应API的学习
java.util.ResourceBundle类是专门用于:读取类路径下Properties配置文件的类
java.util.ResourceBundle类 |
功能 |
static ResourceBundle getBundle("配置基名") |
通过自己的静态方法创建ResourceBundle对象
参数:放在src下.properties文件。参数中不用写扩展名,只要有主名就可以了
|
String getString("键名") |
通过键得到值 |
案例:得到druid.properties中的url属性
package com.itheima.jedis;
import java.util.ResourceBundle;
/**
* 读取属性文件
*/
public class Demo3 {
public static void main(String[] args) {
//得到资源绑定对象
ResourceBundle bundle = ResourceBundle.getBundle("druid");
System.out.println(bundle.getString("url"));
}
} 로그인 후 복사
4.2连接池工具类的实现
需求:
实现连接池工具类,通过工具类得到Jedis连接对象,配置参数写在属性文件中
调用工具类,对Redis数据库进行操作
执行效果:
实现步骤:
在src目录下创建连接池的工具类: jedis.properties
创建静态成员变量JedisPool对象
在静态代码块中,读取src下的配置文件,得到ResourceBundle对象
得到上面的四个参数,其中host是字符串类型,其它参数要转成整数类型
实例化配置对象,实例化连接池对象
编写静态方法getJedis()返回Jedis对象
创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
使用hgetall读取hash对象输出
关闭jedis对象
jedis.properties配置文件
# 主机名
host=localhost
# 端口号
port=6379
# 最大连接数
maxTotal=20
# 最长等待时间
maxWaitMillis=3000 로그인 후 복사
JedisUtils.java
package com.itheima.utils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.ResourceBundle;
/**
* 连接池工具类
*/
public class JedisUtils {
//创建一个连接对象
private static JedisPool pool;
static {
//创建连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数和最长等待时间
ResourceBundle bundle = ResourceBundle.getBundle("jedis");
//得到配置文件中的属性值
String host = bundle.getString("host");
int port = Integer.parseInt(bundle.getString("port"));
int maxTotal = Integer.parseInt(bundle.getString("maxTotal"));
int maxWaitMillis = Integer.parseInt(bundle.getString("maxWaitMillis"));
//设置配置对象的参数
config.setMaxTotal(maxTotal);
config.setMaxWaitMillis(maxWaitMillis);
//创建连接池对象
pool = new JedisPool(config, host, port);
}
/**
* 得到redis连接对象
* @return
*/
public static Jedis getJedis() {
return pool.getResource();
}
} 로그인 후 복사
使用工具类:
package com.itheima.jedis;
import com.itheima.utils.JedisUtils;
import redis.clients.jedis.Jedis;
import java.util.Map;
/**
* 使用工具类
*/
public class Demo4 {
public static void main(String[] args) {
//从工具类中得到Jedis对象
Jedis jedis = JedisUtils.getJedis();
//创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
jedis.hset("employee", "name","NewBoy");
jedis.hset("employee", "salary","3000");
//使用hgetall读取hash对象输出
Map<String, String> employee = jedis.hgetAll("employee");
System.out.println(employee);
//关闭jedis对象
jedis.close();
}
} 로그인 후 복사
推荐学习:Redis视频教程
|
|