Heim  >  Artikel  >  Datenbank  >  Redis-Lernen: Grundlegende Verwendung von Jedis

Redis-Lernen: Grundlegende Verwendung von Jedis

WBOY
WBOYnach vorne
2022-07-04 13:53:141791Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Redis. Er organisiert hauptsächlich Fragen im Zusammenhang mit der grundlegenden Verwendung von Jedis, einschließlich der grundlegenden Operationen von Jedis, der Verwendung von Jedis-Verbindungspools usw. Ich hoffe, wir werden einen Blick darauf werfen alle.

Redis-Lernen: Grundlegende Verwendung von Jedis

Empfohlenes Lernen: Redis-Video-Tutorial

1. Einführung in Jedis

Jedis = Java + Redis

Redis kann nicht nur mit Befehlen bedient werden, sondern verfügt jetzt grundsätzlich über API-Unterstützung , wie Java, C#, C++, PHP, Node.js, Go usw. Auf der offiziellen Website sind einige Java-Clients aufgeführt, darunter Jedis, Redisson, Jredis, JDBC-Redis usw. Unter diesen werden Jedis und Redisson offiziell empfohlen.

Um Jedis zum Betrieb von Redis zu verwenden, müssen Sie das JAR-Paket wie folgt importieren:

2. Grundfunktionen von Jedis

2.1 Allgemeine APIs für Jedis-Objekte

Hinweis: Jede Methode ist der Befehlsname in Redis , und die Parameter der Methode sind die Parameter des Befehls

Method

Function

neue Jedis(Gastgeber, Port)

Erstellt Jedis-Verbindung, Parameter: Hostname, Portnummer 6379

set(key, value)

Fügen Sie einen Zeichenfolgenschlüssel und einen Wert hinzu

del(key)

Angegebenen Schlüssel und Wert löschen

Hash-Typ-Schlüsselfeld- value

hget(key,field)

erhalte seinen Wert durch

hash key-field

lpush(key ,Werte)

Fügen Sie einen Listentypschlüssel und ein Element von links hinzu

lpop(key)

Ein Element platzen lassen von links

rpop(key)

Pop ein Element von rechts

close()

Enge Verbindung

        2.2 Grundlegende Operationen von Jedis

Operationsschritte:

Erstellen Sie ein Jedis-Objekt, geben Sie die Serveradresse und die Portnummer an

Schreiben

Legen Sie String-Typdaten auf den Server, Person=Zhang San

LPush, um Listentypdaten hinzuzufügen , Städte=Zhuhai, Shenzhen, Guangzhou

Lesen Sie die obigen Daten vom Server und drucken Sie die Ausgabe aus

Erhalten Sie den Wert der Zeichenfolge.

Lrange Holen Sie sich alle Listenelemente der Liste.

Schließen Sie das Jedis-Objekt und lassen Sie es los Ressourcen

durch die Client prüfen, ob in der Datenbank Daten vorhanden sind. Jedis-Verbindungspool

Das Erstellen und Zerstören von Jedis-Verbindungsressourcen verbraucht viel Programmleistung, daher stellt uns Jedis die Jedis-Verbindungspool-Technologie zur Verfügung. Jedis

Der Verbindungspool initialisiert einige Verbindungsobjekte und speichert sie im Verbindungspool Wenn es erstellt wird, ist es nicht erforderlich, ein Jedis-Objekt selbst zu erstellen, sondern eine Ressource aus dem Verbindungspool abzurufen, um Redis-Vorgänge auszuführen. Nach der Verwendung ist es nicht erforderlich, die jedis-Verbindungsressource zu zerstören. Stattdessen muss die Ressource zur Verwendung durch andere Anforderungen an den Verbindungspool zurückgegeben werden. 3.2Jedis-Verbindungspool-API

JedisPoolConfig()

Erstellen Sie ein Konfigurationsobjekt und verwenden Sie die Parameterlose Konstruktormethode

void setMaxTotal()

JedisPool(Konfigurationsobjekt, Servername, Portnummer
Legen Sie die maximale Anzahl von Verbindungen im Verbindungspool fest

leer

setMaxWaitMillis()

Legen Sie die maximale Wartezeit fest, um das Verbindungsobjekt Jedis zu erhalten edisP ool Verbindungspoolklasse

Beschreibung

) Erstellen Sie einen VerbindungspoolParameter 1 : Das obige Konfigurationsobjekt, Parameter 2: Servername, Parameter 3: 6379

Jedis getResource()

Holen Sie sich ein Jedis-Verbindungsobjekt aus dem Verbindungspool void close( )

Methode zum Schließen des Verbindungspools, normalerweise wird der Verbindungspool nicht geschlossen

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

Das obige ist der detaillierte Inhalt vonRedis-Lernen: Grundlegende Verwendung von Jedis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen