Java三種獲取redis的連接及redis_String類(lèi)型演示(適合新手)
0>確保redis進(jìn)程服務(wù)開(kāi)啟
1>第一種:直接獲取redis連接,通過(guò)redis.()方法測(cè)試連接,如果返回PONG則證明連接正常
//1> jedis的入門(mén)代碼案例,測(cè)試連接
@Test
public void test01(){
//1. 獲取java連接 redis的連接對(duì)象
Jedis jedis = new Jedis("node1", 6379);
//2. 執(zhí)行相關(guān)操作
String ping = jedis.ping();
System.out.println(ping); //返回PONG,說(shuō)明連接成功
//3. 釋放資源
jedis.close();
}
2>第二種:通過(guò)redis連接池獲取redis連接,創(chuàng)建連接池的時(shí)候需要指定參數(shù),
setmaxTotal(最大連接數(shù)),
setMaxIdle(不繁忙時(shí)最大連接數(shù)),
setMinIdle(不繁忙時(shí)最少連接數(shù));
//2> jedis連接池相關(guān)操作
@Test
public void test02(){
//1. 創(chuàng)建連接池對(duì)象(需要通過(guò)配置指定連接池各種情況下有多少連接)
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50); //連接池最大有多少連接
config.setMaxIdle(25); //不繁忙時(shí)最多有多少個(gè)
config.setMinIdle(10); //不繁忙時(shí)最少有多少個(gè)
JedisPool jedisPool = new JedisPool(config, "node1", 6379);
//2. 從連接池獲取一個(gè)連接對(duì)象
Jedis jedis = jedisPool.getResource();
//3. 執(zhí)行相關(guān)操作
System.out.println(jedis.ping());
//4. 釋放資源
jedis.close();
}
3>自定義RedisUtils,利用靜態(tài)代碼塊使連接池隨著類(lèi)的加載只加載一次,防止每次想創(chuàng)建連接的時(shí)候都得先構(gòu)建連接池浪費(fèi)資源;
public class JedisUtils {
private static JedisPool jedisPool;
//構(gòu)造方法私有化
private JedisUtils(){}
static {
//靜態(tài)代碼塊:隨著類(lèi)的加載而加載,一般只會(huì)加載一次
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50); //連接池最大有多少連接
config.setMaxIdle(25); //不繁忙時(shí)最多有多少個(gè)
config.setMinIdle(10); //不繁忙時(shí)最少有多少個(gè)
jedisPool = new JedisPool(config, "node1", 6379);
}
//提供方法獲取jedis連接對(duì)象
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
3.1>測(cè)試工具類(lèi)
//3> 測(cè)試工具類(lèi)
@Test
public void test03(){
//1. 從工具類(lèi)獲取連接
Jedis jedis = JedisUtils.getJedis();
//2. 執(zhí)行相關(guān)操作(測(cè)試連接)
System.out.println(jedis.ping());
//3. 釋放資源(歸還)
jedis.close();
}
4> redis的五種數(shù)據(jù)類(lèi)型
字符串:String
特點(diǎn): 存儲(chǔ)所有的字符和字符串
應(yīng)用場(chǎng)景: 做緩存使用
哈希 :hash
特點(diǎn): 相當(dāng)于java中hashMap集合
應(yīng)用場(chǎng)景: 可以存儲(chǔ)javaBean對(duì)象, 使用場(chǎng)景不多,可被String替代
list:集合
特點(diǎn): 相當(dāng)于java中l(wèi)inkList, 是一個(gè)鏈表的結(jié)構(gòu)
應(yīng)用場(chǎng)景: 做任務(wù)隊(duì)列,在java中客戶(hù)端提供了線程安全獲取集合數(shù)據(jù)的方式
set :集合
特點(diǎn): 唯一, 無(wú)序
應(yīng)用場(chǎng)景: 集合運(yùn)算,例如去重復(fù)的操作
應(yīng)用場(chǎng)景: 一般用來(lái)做排行榜
有序set集合: sorted set
特點(diǎn):唯一, 有序
4.1> 使用jedis操作redis_String(String類(lèi)型)
//4.使用jedis操作redis_string
@Test
public void test04() throws Exception{
//1. 從工具類(lèi)獲取連接
Jedis jedis = JedisUtils.getJedis();
//2. 執(zhí)行相關(guān)操作,(操作redis中String類(lèi)型)
String ping = jedis.ping();
if ("PONG".equalsIgnoreCase(ping)){ //進(jìn)去說(shuō)明正常連接到redis
//2.1 設(shè)置數(shù)據(jù)
jedis.set("name","索隆");
jedis.set("age","25");
//2.2 獲取數(shù)據(jù)
String name = jedis.get("name");
String age = jedis.get("age");
System.out.println(name+" "+age);
System.out.println("-----------------------------");
//2.3 自增 +1
jedis.incr("age");
jedis.incr("age");
jedis.incr("age");
jedis.incr("age");
//2.4 自減 -1
jedis.decr("age");
jedis.decr("age");
//2.5 獲取age的值
System.out.println("年齡為:"+jedis.get("age"));
System.out.println("------------------------------");
//2.6 設(shè)置過(guò)期時(shí)間: 為新創(chuàng)建的key設(shè)置過(guò)期時(shí)間 setex
jedis.setex("birthday",10,"1997-11-11");
//2.7 獲取有效時(shí)間 :ttl
while(jedis.exists("birthday")){ //進(jìn)來(lái)就說(shuō)明還存在
Long ttl = jedis.ttl("birthday");
System.out.println("有效時(shí)間還有" + ttl);
//睡眠
Thread.sleep(1000);
}
}
//3. 釋放資源(歸還)
jedis.close();
}
到此這篇關(guān)于Java三種獲取redis的連接及redis_String類(lèi)型演示(適合新手)的文章就介紹到這了,更多相關(guān)Java獲取redis連接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Redis教程(二):String數(shù)據(jù)類(lèi)型
- RedisTemplate常用操作方法總結(jié)(set、hash、list、string等)
- Python操作redis實(shí)例小結(jié)【String、Hash、List、Set等】
- Redis String 類(lèi)型和 Hash 類(lèi)型學(xué)習(xí)筆記與總結(jié)
- 淺談RedisTemplate和StringRedisTemplate的區(qū)別
- Redis?存儲(chǔ)對(duì)象信息用?Hash?和String的區(qū)別
- Redis中的String類(lèi)型及使用Redis解決訂單秒殺超賣(mài)問(wèn)題
- Redis基本數(shù)據(jù)類(lèi)型String常用操作命令
- Redis02 使用Redis數(shù)據(jù)庫(kù)(String類(lèi)型)全面解析
- 一文搞懂Redis最常用String字符串技能
相關(guān)文章
設(shè)計(jì)模式之責(zé)任鏈模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了設(shè)計(jì)模式之責(zé)任鏈模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
java中基本注解的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于java中基本注解的知識(shí)點(diǎn)總結(jié),有需要的朋友們可以跟著學(xué)習(xí)下。2021-06-06
Java Web項(xiàng)目中使用Socket通信多線程、長(zhǎng)連接的方法
很多時(shí)候在javaweb項(xiàng)目中我們需要用到Socket通信來(lái)實(shí)現(xiàn)功能,在web中使用Socket我們需要建立一個(gè)監(jiān)聽(tīng)程序,在程序啟動(dòng)時(shí),啟動(dòng)socket監(jiān)聽(tīng)。接下來(lái)通過(guò)本文給大家介紹Java Web項(xiàng)目中使用Socket通信多線程、長(zhǎng)連接的方法,感興趣的朋友一起學(xué)習(xí)2016-04-04
Java Hibernate中的持久化類(lèi)和實(shí)體類(lèi)關(guān)系
Hibernate是一種Java對(duì)象關(guān)系映射框架,通過(guò)持久化類(lèi)將Java對(duì)象映射到數(shù)據(jù)庫(kù)表中。持久化類(lèi)需要實(shí)現(xiàn)無(wú)參構(gòu)造器、具有標(biāo)識(shí)屬性和使用注解或XML進(jìn)行映射。Hibernate通過(guò)Session來(lái)管理對(duì)象的狀態(tài),包括臨時(shí)狀態(tài)、持久化狀態(tài)和游離狀態(tài)2023-04-04
Java如何跳出當(dāng)前多重循環(huán)你知道嗎
這篇文章主要為大家介紹了Java跳出當(dāng)前多重循環(huán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
Java實(shí)現(xiàn)base64圖片編碼數(shù)據(jù)轉(zhuǎn)換為本地圖片的方法
這篇文章主要介紹了Java實(shí)現(xiàn)base64圖片編碼數(shù)據(jù)轉(zhuǎn)換為本地圖片的方法,涉及java編碼轉(zhuǎn)換及圖片文件生成相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
idea沒(méi)有services窗口、沒(méi)有springboot啟動(dòng)項(xiàng)問(wèn)題
這篇文章主要介紹了idea沒(méi)有services窗口、沒(méi)有springboot啟動(dòng)項(xiàng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
springcloud項(xiàng)目占用內(nèi)存好幾個(gè)G導(dǎo)致服務(wù)器崩潰的問(wèn)題
這篇文章主要介紹了springcloud項(xiàng)目占用內(nèi)存好幾個(gè)G導(dǎo)致服務(wù)器崩潰的問(wèn)題,本文給大家分享解決方案供大家參考,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
從0開(kāi)始教你開(kāi)發(fā)一個(gè)springboot應(yīng)用
這篇文章主要為大家介紹了從0開(kāi)始開(kāi)發(fā)一個(gè)springboot應(yīng)用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

