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值為數組或list集合,該方法會將value值一次性全部追加存入到該key 值對應的內容中;一般情況下同一個key值對應的追加的數據類型要保持一致,像下面那樣先 往stu_list中添加Student對象,再往其中追加list集合或數組,這樣的操作不常見,也無必要。 */ 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); }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 解決redisTemplate中leftPushAll隱性bug的問題
- spring使用RedisTemplate操作Redis數據庫
- RedisTemplate常用方法總結
- Spring中RedisTemplate的基本使用淺析
- Java redisTemplate阻塞式處理消息隊列