久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis之Jedis如何使用

共計(jì) 5243 個(gè)字符,預(yù)計(jì)需要花費(fèi) 14 分鐘才能閱讀完成。

這篇文章主要講解了“Redis 之 Jedis 如何使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Redis 之 Jedis 如何使用”吧!

1.Jedis 的介紹

Jedis = Java + Redis

Redis 不僅可以使用命令來操作,現(xiàn)在基本上主流的語言都有 API 支持,比如 Java、C#、C++、PHP、Node.js、Go 等。在官方網(wǎng)站里列一些 Java 的客戶端,有 Jedis、Redisson、Jredis、JDBC-Redis 等其中官方推薦使用 Jedis 和 Redisson。

使用 Jedis 操作 redis 需要導(dǎo)入 jar 包如下:

2.Jedis 基本操作 2.1Jedis 對(duì)象常用 API

注:每個(gè)方法就是 redis 中的命令名,方法的參數(shù)就是命令的參數(shù)

方法

功能

new Jedis(host, port)

創(chuàng)建 Jedis 的連接,參數(shù):主機(jī)名,端口號(hào) 6379

set(key,value)

添加一個(gè)字符串的鍵和值

get(key)

得到指定鍵的值

del(key)

刪除指定鍵和值

hset(key,field,value)

添加一個(gè) hash 類型的鍵 - 字段 - 值

hget(key,field)

通過 hash 鍵 - 字段得到它的值

lpush(key,values)

從左邊添加一個(gè) list 類型的鍵和元素

lpop(key)

從左邊彈出一個(gè)元素

rpop(key)

從右邊彈出一個(gè)元素

close()

關(guān)閉連接

2.2Jedis 的基本操作

操作步驟:

創(chuàng)建 Jedis 對(duì)象,指定服務(wù)器地址和端口號(hào)

向服務(wù)器寫入

set 字符串類型的數(shù)據(jù),person= 張三

lpush 添加 list 類型的數(shù)據(jù),cities= 珠海,深圳,廣州

從服務(wù)器中讀取上面的數(shù)據(jù)打印輸出

get 得到字符串的值

lrange 得到 list 所有的列表元素

關(guān)閉 Jedis 對(duì)象,釋放資源

通過客戶端查看數(shù)據(jù)庫(kù)中是否有數(shù)據(jù)

控制臺(tái)輸出:

數(shù)據(jù)庫(kù)中

代碼:

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) {
 // 創(chuàng)建 Jedis 連接對(duì)象
 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);
 // 關(guān)閉連接對(duì)象
 jedis.close();
 }
}

3.Jedis 連接池的使用 3.1Jedis 連接池的基本概念

jedis 連接資源的創(chuàng)建與銷毀是很消耗程序性能,所以 jedis 為我們提供了 jedis 的連接池技術(shù),jedis

連接池在創(chuàng)建時(shí)初始化一些連接對(duì)象存儲(chǔ)到連接池中,使用 jedis 連接資源時(shí)不需要自己創(chuàng)建 jedis 對(duì)

象,而是從連接池中獲取一個(gè)資源進(jìn)行 redis 的操作。使用完畢后,不需要銷毀該 jedis 連接資源,

而是將該資源歸還給連接池,供其他請(qǐng)求使用。

3.2Jedis 連接池 API

JedisPoolConfig 配置類

功能說明

JedisPoolConfig()

創(chuàng)建一個(gè)配置對(duì)象,使用無參構(gòu)造方法就可以了

void setMaxTotal()

設(shè)置連接池最大的連接數(shù)

void setMaxWaitMillis()

設(shè)置得到連接對(duì)象 Jedis 最長(zhǎng)等待時(shí)間

JedisPool 連接池類

說明

JedisPool(配置對(duì)象, 服務(wù)器名, 端口號(hào))

創(chuàng)建連接池

參數(shù) 1:上面的配置對(duì)象,參數(shù) 2:服務(wù)器名,參數(shù) 3:6379

Jedis getResource()

從連接池中得到一個(gè) Jedis 連接對(duì)象

void close()

連接池關(guān)閉方法,通常不關(guān)閉連接池

3.3JedisPool 的基本使用

需求:

使用連接池優(yōu)化 jedis 操作

開發(fā)步驟

創(chuàng)建連接池配置對(duì)象,設(shè)置最大連接數(shù) 10,設(shè)置用戶最大等待時(shí)間 2000 毫秒

通過配置對(duì)象做為參數(shù),創(chuàng)建連接池對(duì)象

從連接池里面獲取 jedis 連接對(duì)象,執(zhí)行 redis 命令。

執(zhí)行 redis 命令 sadd 寫入 set 集合類型的數(shù)據(jù):students= 白骨精, 孫悟空, 豬八戒

執(zhí)行 redis 命令 smembers 讀取集合中的數(shù)據(jù)

輸出讀取的數(shù)據(jù)

關(guān)閉連接對(duì)象 (通常連接池不關(guān)閉)

運(yùn)行效果

執(zhí)行代碼

package com.itheima.jedis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.Set;
 *  創(chuàng)建 Jedis 連接池
 */
public class Demo2 { public static void main(String[] args) { //1) 創(chuàng)建連接池配置對(duì)象,設(shè)置最大連接數(shù) 10,設(shè)置用戶最大等待時(shí)間 2000 毫秒
 JedisPoolConfig config = new JedisPoolConfig();
 config.setMaxTotal(10);
 config.setMaxWaitMillis(2000);
 //2) 通過配置對(duì)象做為參數(shù),創(chuàng)建連接池對(duì)象
 JedisPool pool = new JedisPool(config,  localhost , 6379);
 //3) 從連接池里面獲取 jedis 連接對(duì)象,執(zhí)行 redis 命令。 Jedis jedis = pool.getResource();
 //4) 執(zhí)行 redis 命令 sadd 寫入 set 集合類型的數(shù)據(jù):students= 白骨精, 孫悟空, 豬八戒
 jedis.sadd( students ,  白骨精 ,  孫悟空 ,  豬八戒 
 //5) 執(zhí)行 redis 命令 smembers 讀取集合中的數(shù)據(jù)
 Set String  students = jedis.smembers( students 
 //6) 輸出讀取的數(shù)據(jù)
 System.out.println(students);
 //7) 關(guān)閉連接對(duì)象 (通常連接池不關(guān)閉)
 jedis.close();
 pool.close();
 }
}

4. 案例:編寫 jedis 連接池工具類 4.1 相應(yīng) API 的學(xué)習(xí)

java.util.ResourceBundle 類是專門用于:讀取類路徑下 Properties 配置文件的類

java.util.ResourceBundle 類

功能

static ResourceBundle getBundle(配置基名)

通過自己的靜態(tài)方法創(chuàng)建 ResourceBundle 對(duì)象

參數(shù):放在 src 下.properties 文件。參數(shù)中不用寫擴(kuò)展名,只要有主名就可以了

String getString(鍵名)

通過鍵得到值

案例:得到 druid.properties 中的 url 屬性

package com.itheima.jedis;
import java.util.ResourceBundle;
 *  讀取屬性文件
 */
public class Demo3 { public static void main(String[] args) {
 // 得到資源綁定對(duì)象
 ResourceBundle bundle = ResourceBundle.getBundle( druid 
 System.out.println(bundle.getString( url));
 }
}

4.2 連接池工具類的實(shí)現(xiàn)

需求:

實(shí)現(xiàn)連接池工具類,通過工具類得到 Jedis 連接對(duì)象,配置參數(shù)寫在屬性文件中

調(diào)用工具類,對(duì) Redis 數(shù)據(jù)庫(kù)進(jìn)行操作

執(zhí)行效果:

實(shí)現(xiàn)步驟:

在 src 目錄下創(chuàng)建連接池的工具類: jedis.properties

創(chuàng)建靜態(tài)成員變量 JedisPool 對(duì)象

在靜態(tài)代碼塊中,讀取 src 下的配置文件,得到 ResourceBundle 對(duì)象

得到上面的四個(gè)參數(shù),其中 host 是字符串類型,其它參數(shù)要轉(zhuǎn)成整數(shù)類型

實(shí)例化配置對(duì)象,實(shí)例化連接池對(duì)象

編寫靜態(tài)方法 getJedis() 返回 Jedis 對(duì)象

創(chuàng)建 hash 對(duì)象:鍵 employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000

使用 hgetall 讀取 hash 對(duì)象輸出

關(guān)閉 jedis 對(duì)象

jedis.properties 配置文件

#  主機(jī)名
host=localhost
#  端口號(hào)
port=6379
#  最大連接數(shù)
maxTotal=20
#  最長(zhǎng)等待時(shí)間
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 {
 // 創(chuàng)建一個(gè)連接對(duì)象
 private static JedisPool pool;
 static {
 // 創(chuàng)建連接池的配置對(duì)象
 JedisPoolConfig config = new JedisPoolConfig();
 // 設(shè)置最大連接數(shù)和最長(zhǎng)等待時(shí)間
 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));
 // 設(shè)置配置對(duì)象的參數(shù)
 config.setMaxTotal(maxTotal);
 config.setMaxWaitMillis(maxWaitMillis);
 // 創(chuàng)建連接池對(duì)象
 pool = new JedisPool(config, host, port);
 }
 /**
 *  得到 redis 連接對(duì)象
 * @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 對(duì)象
 Jedis jedis = JedisUtils.getJedis();
 // 創(chuàng)建 hash 對(duì)象:鍵 employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
 jedis.hset( employee ,  name , NewBoy 
 jedis.hset( employee ,  salary , 3000 
 // 使用 hgetall 讀取 hash 對(duì)象輸出
 Map String, String  employee = jedis.hgetAll( employee 
 System.out.println(employee);
 // 關(guān)閉 jedis 對(duì)象
 jedis.close();
 }
}

感謝各位的閱讀,以上就是“Redis 之 Jedis 如何使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì) Redis 之 Jedis 如何使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-13發(fā)表,共計(jì)5243字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 凤凰县| 乐亭县| 嘉义县| 德化县| 萨迦县| 沾益县| 秦安县| 乡宁县| 上杭县| 同江市| 从江县| 扶绥县| 乐亭县| 云梦县| 乌鲁木齐市| 日喀则市| 疏勒县| 高邮市| 蕉岭县| 沙田区| 西宁市| 寿阳县| 宣城市| 乐清市| 福州市| 永定县| 镇平县| 周口市| 广昌县| 额尔古纳市| 鸡泽县| 黑山县| 靖宇县| 新河县| 洞口县| 庆安县| 甘洛县| 汤原县| 天柱县| 河西区| 绥江县|