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