经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
RedisTemplate中opsForValue和opsForList方法的使用详解
来源:jb51  时间:2021/8/4 13:35:15  对本文有异议

一、opsForValue用法

key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key只能对应一个value。

1)value为String类型示例:

  1. //赋值方法
  2. redisTemplate.opsForValue().set("username1","wangxinli");
  3. redisTemplate.opsForValue().set("username2","yanxiaotang");
  4. redisTemplate.opsForValue().set("username3","zhangguoshun");
  5. //取值,返回是String类型
  6. String str1 = redisTemplate.opsForValue().get("username1");
  7. String str2 = redisTemplate.opsForValue().get("username2");
  8. String str3 = redisTemplate.opsForValue().get("username3");

2)value为其他类对象Object(例如自定义对象)

  1. //赋值方法
  2. redisTemplate.opsForValue().set("stu1",new Student(1,"张三",20,"张无忌"));
  3. redisTemplate.opsForValue().set("stu2",new Student(2,"李四",20,"张真人"));
  4. //取值,返回是Student类型
  5. Student stu1 = redisTemplate.opsForValue().get("stu1");
  6. Student stu2 = redisTemplate.opsForValue().get("stu2");

总结:set时value传的是什么类型,get后返回的就是什么类型。

二、opsForList用法

key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key可以分别先后添加多个value。

1)value为String类型示例:

  1. redisTemplate.opsForList().rightPush("user_list","wangxinli");
  2. redisTemplate.opsForList().rightPush("user_list","yanxiaotang");
  3. //push时value传的是什么类型,range方法后接受的list<>中就传什么类型
  4. List<String> lists = redisTemplate.opsForList().range("user_list",0,-1);
  5. for(String str:lists){
  6. System.out.println(str);
  7. }

2)value为其他类对象Object(例如自定义对象)

  1. //赋值方法
  2. redisTemplate.opsForList().leftPush("stu_list",new Student(1,"张三",20,"张无忌"));
  3. redisTemplate.opsForList().leftPush("stu_list",new Student(2,"李四",20,"张真人"));
  4. /**
  5. leftPushAll方法的value值为数组或list集合,该方法会将value值一次性全部追加存入到该key
  6. 值对应的内容中;一般情况下同一个key值对应的追加的数据类型要保持一致,像下面那样先
  7. 往stu_list中添加Student对象,再往其中追加list集合或数组,这样的操作不常见,也无必要。
  8. */
  9. redisTemplate.opsForList().leftPushAll("stu_list",stuArr);
  10. //取值,返回是Student类型
  11. List<Student> lists = redisTemplate.opsForList().range("stu_list",0,-1);
  12. //遍历
  13. for(Student stu:lists){
  14. System.out.println(stu);
  15. }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号