RedisTemplate中opsForValue和opsForList方法的使用详解
作者:力先生
这篇文章主要介绍了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); }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。