>  기사  >  데이터 베이스  >  Redis 학습: Jedis의 기본 사용

Redis 학습: Jedis의 기본 사용

WBOY
WBOY앞으로
2022-07-04 13:53:141815검색

이 글은 Redis에 대한 관련 지식을 제공합니다. 주로 Jedis의 기본 작동, Jedis 연결 풀 사용 등 Jedis의 기본 사용과 관련된 문제를 함께 살펴보겠습니다. 모든 사람.

Redis 학습: Jedis의 기본 사용

추천 학습: Redis 동영상 튜토리얼

1. Jedis 소개

Jedis = Java + Redis

Redis는 명령을 사용하여 작동할 수 있을 뿐만 아니라 이제 기본적으로 주류 언어에도 API가 지원됩니다. , Java, C#, C++, PHP, Node.js, Go 등과 같은 공식 웹사이트에는 Jedis, Redisson, Jredis, JDBC-Redis 등 일부 Java 클라이언트가 나열되어 있습니다. 그중 Jedis와 Redisson이 공식적으로 권장됩니다.

Jedis를 사용하여 Redis를 작동하려면 다음과 같이 jar 패키지를 가져와야 합니다.

2. Jedis의 기본 작업

2.1 Jedis 객체에 대한 공통 API

참고: 각 메서드는 redis의 명령 이름입니다. , 메소드의 매개변수는

명령의 매개변수입니다. lpush(키 ,값)lpop(key)rpop(key)닫기()

Method

Function

new Jedis(호스트, 포트)

Created Jedis 연결, 매개변수: 호스트 이름, 포트 번호 6379

set(키, 값)

문자열 키와 값 추가

get(key)

지정된 키의 값 가져오기

델(키)

지정된 키 및 값 삭제

hset(key,field,value)

추가 해시 유형 키-필드- value

hget(key,field)

해시 키 필드로 값을 가져옵니다.

왼쪽에서

목록 유형 키와 요소를 추가합니다.

요소 팝 왼쪽에서

오른쪽에서 요소 팝

연결 종료

        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

구성 객체 생성 및 매개변수 없는 생성자 메서드 사용연결 풀의 최대 연결 수 설정연결 개체 Jedis를 가져오기 위한 최대 대기 시간 설정

JedisPoolConfig 구성 클래스

기능 설명

JedisPoolConfig()

void setMaxTotal()

void setMaxWaitMillis()

연결 풀 생성 연결 풀에서 Jedis 연결 객체를 얻습니다.

제디스풀 연결 풀 수업

Description

JedisPool(구성 개체, 서버 이름, 포트 번호)

매개변수 1 : 위의 구성 객체, 매개 변수 2 : 서버 이름, 매개 변수 3 : 6379

jedis getResource ()

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视频教程

위 내용은 Redis 학습: Jedis의 기본 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제