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。

推薦閱讀: