RedisTemplate中opsForValue和opsForList方法的使用詳解
更新時間:2021年08月04日 11:26:40 作者:力先生
這篇文章主要介紹了RedisTemplate中opsForValue和opsForList方法的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
一、opsForValue用法
key:字符串,value:可以是任意對象Object(例如String、具體對象如自定義類Student等),一個key只能對應一個value。
1)value為String類型示例:
//賦值方法
redisTemplate.opsForValue().set("username1","wangxinli");
redisTemplate.opsForValue().set("username2","yanxiaotang");
redisTemplate.opsForValue().set("username3","zhangguoshun");
//取值,返回是String類型
String str1 = redisTemplate.opsForValue().get("username1");
String str2 = redisTemplate.opsForValue().get("username2");
String str3 = redisTemplate.opsForValue().get("username3");
2)value為其他類對象Object(例如自定義對象)
//賦值方法
redisTemplate.opsForValue().set("stu1",new Student(1,"張三",20,"張無忌"));
redisTemplate.opsForValue().set("stu2",new Student(2,"李四",20,"張真人"));
//取值,返回是Student類型
Student stu1 = redisTemplate.opsForValue().get("stu1");
Student stu2 = redisTemplate.opsForValue().get("stu2");
總結:set時value傳的是什么類型,get后返回的就是什么類型。
二、opsForList用法
key:字符串,value:可以是任意對象Object(例如String、具體對象如自定義類Student等),一個key可以分別先后添加多個value。
1)value為String類型示例:
redisTemplate.opsForList().rightPush("user_list","wangxinli");
redisTemplate.opsForList().rightPush("user_list","yanxiaotang");
//push時value傳的是什么類型,range方法后接受的list<>中就傳什么類型
List<String> lists = redisTemplate.opsForList().range("user_list",0,-1);
for(String str:lists){
System.out.println(str);
}
2)value為其他類對象Object(例如自定義對象)
//賦值方法
redisTemplate.opsForList().leftPush("stu_list",new Student(1,"張三",20,"張無忌"));
redisTemplate.opsForList().leftPush("stu_list",new Student(2,"李四",20,"張真人"));
/**
leftPushAll方法的value值為數(shù)組或list集合,該方法會將value值一次性全部追加存入到該key
值對應的內容中;一般情況下同一個key值對應的追加的數(shù)據類型要保持一致,像下面那樣先
往stu_list中添加Student對象,再往其中追加list集合或數(shù)組,這樣的操作不常見,也無必要。
*/
redisTemplate.opsForList().leftPushAll("stu_list",stuArr);
//取值,返回是Student類型
List<Student> lists = redisTemplate.opsForList().range("stu_list",0,-1);
//遍歷
for(Student stu:lists){
System.out.println(stu);
}
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java中通過繼承Thread類創(chuàng)建線程的步驟
本文介紹了如何通過繼承Thread類創(chuàng)建線程,包括Thread類的定義、創(chuàng)建線程的步驟、優(yōu)缺點、使用場景和注意事項,通過示例代碼展示了多線程下載文件的實現(xiàn),感興趣的朋友跟隨小編一起看看吧2025-02-02
freemarker簡介_動力節(jié)點Java學院整理
FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫,有興趣的可以了解一下2017-08-08
詳解SpringBoot中5種類型參數(shù)傳遞和json數(shù)據傳參的操作
當涉及到參數(shù)傳遞時,Spring?Boot遵循HTTP協(xié)議,并支持多種參數(shù)傳遞方式,這些參數(shù)傳遞方式可以根據請求的不同部分進行分類,2023-12-12
Java報錯:ClassCastException問題解決方法
異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,下面這篇文章主要給大家介紹了關于Java報錯:ClassCastException問題解決方法,需要的朋友可以參考下2024-07-07

