Rumah  >  Artikel  >  pangkalan data  >  Pembelajaran Redis: Penggunaan Asas Jedis

Pembelajaran Redis: Penggunaan Asas Jedis

WBOY
WBOYke hadapan
2022-07-04 13:53:141793semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Redis Ia terutamanya mengatur isu yang berkaitan dengan penggunaan asas Jedis, termasuk operasi asas Jedis, penggunaan kumpulan sambungan Jedis, dsb., seperti berikut. lihat, saya harap ia akan membantu semua orang.

Pembelajaran Redis: Penggunaan Asas Jedis

Pembelajaran yang disyorkan: Tutorial video Redis

1. Pengenalan kepada Jedis

Jedis = Java Redis

Redis bukan sahaja boleh dikendalikan menggunakan arahan, tetapi kini pada asasnya bahasa arus perdana mempunyai sokongan API, seperti Java, C#, C, PHP, Node.js, Go, dll. Terdapat beberapa pelanggan Java disenaraikan di laman web rasmi, termasuk Jedis, Redisson, Jredis, JDBC-Redis, dll. Antaranya, Jedis dan Redisson disyorkan secara rasmi.

Untuk menggunakan Jedis untuk mengendalikan redis, anda perlu mengimport pakej balang seperti berikut:

Operasi asas Jedis

2.1 API biasa untuk objek Jedis

Nota: Setiap kaedah ialah nama arahan dalam redis, dan parameter kaedah ialah parameter perintah

方法

功能

new Jedis(host, port)

创建Jedis的连接,参数:主机名,端口号6379

set(key,value)

添加一个字符串的键和值

get(key)

得到指定键的值

del(key)

删除指定键和值

hset(key,field,value)

添加一个hash类型的键-字段-值

hget(key,field)

通过hash键-字段得到它的值

lpush(key,values)

从左边添加一个list类型的键和元素

lpop(key)

从左边弹出一个元素

rpop(key)

从右边弹出一个元素

close()

关闭连接

Kaedah strong> Fungsi strong> Jedis baharu(hos, pelabuhan) Buat Sambungan Jedis , parameter: nama hos, nombor port 6379 set(key,value) Tambah rentetan Kekunci dan nilai dapatkan( kunci) Dapatkan nilai kunci yang ditentukan strong> del(key) Padamkan kunci dan nilai yang ditentukan strong> hset(kunci,medan,nilai) Tambahkan nilai medan-kunci jenis hash hget(key,field) Oleh strong>Kunci hash - medan mendapat nilainya lpush(kunci,nilai) Tambahkan satu dari kiri strong>Kekunci dan elemen jenis senarai lpop(key) Pancarkan elemen dari kiri rpop(key) Pop elemen dari kanan strong> tutup() Tutup sambungan

2.2 Operasi asas Jedis

Langkah operasi:

Buat objek Jedis, nyatakan alamat pelayan dan nombor port

Tulis

ditetapkan kepada data jenis String pelayan, person=Zhang San

lpush menambah data jenis senarai, bandar=Zhuhai, Shenzhen, Guangzhou

Baca data di atas daripada pelayan dan cetak output

get mendapat nilai rentetan

lrange mendapat semua elemen senarai senarai

Tutup objek Jedis dan lepaskan sumber

Periksa sama ada terdapat data dalam pangkalan data melalui klien

Output konsol:

Pangkalan data

Kod:

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.Penggunaan kumpulan sambungan Jedis

3.1 Konsep asas kumpulan sambungan Jedis

Penciptaan dan pemusnahan sumber sambungan Jedis menggunakan banyak daripada prestasi program, jadi jedis memberikan kami teknologi kumpulan sambungan jedis

Kolam sambungan memulakan beberapa objek sambungan dan menyimpannya dalam kumpulan sambungan apabila ia dibuat apabila menggunakan jedis untuk menyambung sumber, anda tidak melakukannya perlu mencipta pasangan jedis sendiri

Sebaliknya, ia memperoleh sumber daripada kumpulan sambungan untuk melaksanakan operasi redis. Selepas digunakan, tidak perlu memusnahkan sumber sambungan jedis

Sebaliknya, kembalikan sumber itu kepada kumpulan sambungan untuk digunakan oleh permintaan lain.

3.2Jedis connection pool API

tr>

Kelas konfigurasi JedisPoolConfig

JedisPoolConfig配置类

功能说明

JedisPoolConfig()

创建一个配置对象,使用无参构造方法就可以了

void setMaxTotal()

设置连接池最大的连接数

void setMaxWaitMillis()

设置得到连接对象Jedis最长等待时间

Penerangan Fungsi

JedisPool连接池类

说明

JedisPool(配置对象,服务器名,端口号)

创建连接池

参数1:上面的配置对象,参数2:服务器名,参数3:6379

Jedis getResource()

从连接池中得到一个Jedis连接对象

void close()

连接池关闭方法,通常不关闭连接池

JedisPoolConfig()

Buat objek konfigurasi dan gunakan pembina tanpa parameter

void setMaxTotal()

Tetapkan Nombor kumpulan sambungan maksimum daripada sambungan

void setMaxWaitMillis()

Tetapkan masa menunggu maksimum untuk Jedis mendapatkan objek sambungan

tbody>

Kelas kolam sambungan JedisPool span>

Penerangan

JedisPool(objek konfigurasi, nama pelayan ,nombor port)

Buat kolam sambungan

Parameter 1: objek konfigurasi di atas, parameter 2 : nama pelayan , Parameter 3: 6379

Jedis getResource()

Dapatkan objek sambungan Jedis daripada kolam sambungan

void close()

Kaedah penutupan kolam sambungan, biasanya tidak menutup kolam sambungan

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

Atas ialah kandungan terperinci Pembelajaran Redis: Penggunaan Asas Jedis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam