首頁  >  文章  >  資料庫  >  Redis學習之Jedis的基本使用

Redis學習之Jedis的基本使用

WBOY
WBOY轉載
2022-07-04 13:53:141814瀏覽

這篇文章為大家帶來了關於Redis的相關知識,其中主要整理了Jedis基本使用的相關問題,包括了Jedis基本操作、Jedis連接池的使用等等內容,下面一起來看一下,希望對大家有幫助。

Redis學習之Jedis的基本使用

推薦學習:Redis影片教學

#1.Jedis的介紹

Jedis = Java Redis

Redis不只可以用指令來操作,現在基本上主流的語言都有API支持,像是Java、C#、C 、PHP、Node.js、Go等。在官方網站裡列出一些Java的客戶端,有Jedis、Redisson、Jredis、JDBC-Redis等其中官方推薦使用Jedis和Redisson。

使用Jedis作業redis需要匯入jar套件如下:

2.Jedis基本運算

        2.1Jedis物件常用API

註:每個方法就是redis中的指令名,方法的參數就是指令的參數

## set(key,value)get(key)

方法

功能

##new Jedis(host, port)

建立Jedis的連接,參數:主機名,連接埠號碼6379

#新增一個字串的鍵和值

#得到指定鍵的值

del(key)

刪除指定鍵和值

#hset(key,field, value)

新增一個

hash類型的鍵-欄位-值

hget(key,field)

透過

hash鍵-欄位得到它的值

lpush(key,values)

#從左邊加入一個

list類型的鍵與元素

#lpop(key)

從左邊彈出一個元素

#rpop(key)#########################從右邊彈出一個元素############# #################close()########################關閉連線#### ##################

        2.2Jedis的基本操作

操作步驟:

建立Jedis對象,指定伺服器位址和連接埠號碼

#向伺服器寫入

#set字串類型的數據,person=張三

lpush添加list類型的數據,cities=珠海,深圳,廣州

從伺服器中讀取上面的數據打印輸出

get得到字串的值

lrange得到list所有的列表元素

關閉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.1Jedis連接池的基本概念

##jedis連接資源的創建與銷毀是很消耗程式效能,所以jedis為我們提供了jedis的連接池技術,jedis

連接池在創建時初始化一些連接對象存儲到連接池中,使用jedis連接資源時不需要自己創建jedis對

象,而是從連線池中取得一個資源進行redis的操作。使用完畢後,不需要銷毀該jedis連線資源,

而是將該資源歸還給連線池,供其他要求使用。

        3.2Jedis連接池API

JedisPoolConfig配置類

功能說明

#JedisPoolConfig()

#建立一個配置對象,使用無參構方法就可以了

#void setMaxTotal()

#設定連接池最大的連線數

void setMaxWaitMillis()

設定得到連接物件Jedis最長等待時間

JedisPool連接池類別

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

以上是Redis學習之Jedis的基本使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除