ホームページ  >  記事  >  データベース  >  Redis の学習: Jedis の基本的な使用法

Redis の学習: Jedis の基本的な使用法

WBOY
WBOY転載
2022-07-04 13:53:141738ブラウズ

この記事では、Redis に関する関連知識を提供します。主に、Jedis の基本的な操作、Jedis 接続プールの使用など、Jedis の基本的な使用法に関連する問題を次のように整理しています。 , 皆様のお役に立てれば幸いです。

Redis の学習: Jedis の基本的な使用法

推奨学習: Redis ビデオ チュートリアル

1. Jedis の概要

Jedis = Java Redis

Redis はコマンドで操作できるだけではなく、Java、C#、C、PHP、Node.js、Go など、現在主流の言語は基本的に API をサポートしています。公式 Web サイトには、Jedis、Redisson、Jredis、JDBC-Redis などの Java クライアントがいくつかリストされています。その中でも、Jedis と Redisson が公式に推奨されています。

Jedis を使用して Redis を操作するには、次のように jar パッケージをインポートする必要があります:

2. Jedis の基本操作

2.1 Jedis オブジェクトで一般的に使用される API

注: 各メソッドは redis のコマンド名であり、メソッドのパラメーターはコマンドのパラメーターです

##指定されたキーの値を取得del(key)ハッシュ キー フィールドを介して値を取得します##rpop(key)close()

メソッド

#関数

新しい Jedis(ホスト、ポート)

##作成Jedis 接続、パラメータ: ホスト名、ポート番号 6379

## set(key,value)

文字列キーと値を追加します

get(key)

##指定されたキーと値を削除します

# #hset(key,field, value)

ハッシュ型キーを追加します-フィールド値

##hget(キー,フィールド)

lpush(key,values)

## を追加します## 左から ##リスト型のキーと要素

lpop(key)

左から要素をポップ

右から要素をポップします

##接続を閉じます

2.2Jedis の基本操作

操作手順:

Jedis オブジェクトを作成し、サーバーのアドレスとポート番号を指定します

サーバーに書き込みます

set 文字列型データ、person=Zhang San

lpush はリスト型データを追加します、city=Zhuhai、Shenzhen、Guangzhou

サーバーから上記のデータを読み取り、出力を印刷します

get は文字列の値を取得します

lrange リストのすべてのリスト要素を取得します

Jedis オブジェクトを閉じてリソースを解放します

データがあるかどうかを確認しますクライアントを介したデータベース

コンソール出力:

データベース内

コード:

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 を使用してリソースに接続する場合、 jedis オブジェクトを自分で作成する必要はありません (

)。代わりに、redis 操作用のリソースを接続プールから取得します。使用後、jedis 接続リソース

を破棄する必要はありませんが、他のリクエストで使用できるようにリソースを接続プールに返します。

3.2Jedis 接続プール API

構成オブジェクトを作成し、パラメーターなしのコンストラクターを使用するだけです##void setMaxTotal()##void

##JedisPoolConfig 構成クラス

#関数の説明

#JedisPoolConfig()

接続プール内の最大接続数を設定します

setMaxWaitMillis()接続オブジェクト Jedis を取得するまでの最大待機時間を設定します

JedisPool 接続プール クラス#void close()#接続プールを閉じるメソッド。通常は接続プールを閉じません。

#説明

#JedisPool(構成オブジェクト、サーバー名
、ポート番号

)接続プールの作成パラメータ 1: 上記の構成オブジェクト、パラメータ 2:サーバー名、パラメータ 3: 6379

##Jedis getResource()

接続プールから Jedis 接続オブジェクトを取得する

        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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。