RedisTemplate的各种操作(set、hash、list、string)

注入以下RedisTemplate

  1. @Autowired
  2. private RedisTemplate<String,String> redisTemplate;

1、保存和读取Set:

代码示例:

  1. SetOperations<String, String> set = redisTemplate.opsForSet();
  2. set.add("set1","22");
  3. set.add("set1","33");
  4. set.add("set1","44");
  5. Set<String> resultSet =redisTemplate.opsForSet().members("set1");
  6. System.out.println("resultSet:"+resultSet);

运行结果为:

resultSet:[[set3, set2, set1]]  jedis

2、Hash结构,保存和读取map:

示例代码:

  1. Map<String,String> map=new HashMap<String,String>();
  2. map.put("key1","value1");
  3. map.put("key2","value2");
  4. map.put("key3","value3");
  5. map.put("key4","value4");
  6. map.put("key5","value5");
  7. redisTemplate.opsForHash().putAll("map1",map);
  8. Map<String,String> resultMap= redisTemplate.opsForHash().entries("map1");
  9. List<String>reslutMapList=redisTemplate.opsForHash().values("map1");
  10. Set<String>resultMapSet=redisTemplate.opsForHash().keys("map1");
  11. String value=(String)redisTemplate.opsForHash().get("map1","key1");
  12. System.out.println("value:"+value);
  13. System.out.println("resultMapSet:"+resultMapSet);
  14. System.out.println("resultMap:"+resultMap);
  15. System.out.println("resulreslutMapListtMap:"+reslutMapList);

运行结果为:

value:value1

resultMapSet:[key1, key2, key5, key3, key4]

resultMap:{key3=value3, key2=value2, key1=value1, key5=value5, key4=value4}

resulreslutMapListtMap:[value1, value2, value5, value3, value4]

3、保存和读取list

示例代码:

  1. List<String> list1=new ArrayList<String>();
  2. list1.add("a1");
  3. list1.add("a2");
  4. list1.add("a3");
  5.  
  6. List<String> list2=new ArrayList<String>();
  7. list2.add("b1");
  8. list2.add("b2");
  9. list2.add("b3");
  10. redisTemplate.opsForList().leftPush("listkey1",list1);
  11. redisTemplate.opsForList().rightPush("listkey2",list2);
  12. List<String> resultList1=(List<String>)redisTemplate.opsForList().leftPop("listkey1");
  13. List<String> resultList2=(List<String>)redisTemplate.opsForList().rightPop("listkey2");
  14. System.out.println("resultList1:"+resultList1);
  15. System.out.println("resultList2:"+resultList2);

运行结果:

resultList1:[a1, a2, a3]

resultList2:[b1, b2, b3]

这里需要解释一下:不管是leftPush还是rightPush都可以用leftPop或者rightPoP任意一种获取到其中的值,不过就是获取的遍历方向不一样。有学过数据结构的人都知道里面循环链表是可以前后遍历的,就和这里的场景是一样的。如果还有不懂的话可以去看看这部分的源代码,其实就是遍历方向不同,所以效率也不同。所以最好leftPush用leftPoP遍历,rightPush用rightPoP遍历

4、保存和读取String(最常用的)

  1. System.out.println("缓存正在设置。。。。。。。。。");
  2. redisTemplate.opsForValue().set("key1","value1");
  3. redisTemplate.opsForValue().set("key2","value2");
  4. redisTemplate.opsForValue().set("key3","value3");
  5. redisTemplate.opsForValue().set("key4","value4");
  6. System.out.println("缓存已经设置完毕。。。。。。。");
  7. String result1=redisTemplate.opsForValue().get("key1").toString();
  8. String result2=redisTemplate.opsForValue().get("key2").toString();
  9. String result3=redisTemplate.opsForValue().get("key3").toString();
  10. System.out.println("缓存结果为:result:"+result1+" "+result2+" "+result3);

最新文章

  1. sql一个表中的数据插入到另外一个表中
  2. DispatcherServlet 和 ContextLoaderListener 的关系,到底用哪个?
  3. iOS百度地图简单使用
  4. [工作中的设计模式]组合模式compnent
  5. IOS开发之网络编程开源类 Reachability应用
  6. Ubuntu 14.04 安装nVidia驱动后不能进入图形界面的恢复过程
  7. HTTP传送协议
  8. HDU 5763 Another Meaning
  9. PythonCrawl自学日志
  10. redux学习笔记
  11. HTML元素遮挡Flash之梦
  12. 操作 IoT 设备内嵌 SQLite
  13. 拷贝构造函数和const成员函数
  14. WindowsPhone8中实现圆形图片的生成显示
  15. FastDFS php API
  16. 路由器wan口连接不上的问题
  17. IT实用技术资源整理
  18. Java开发笔记(六十二)如何定义函数式接口
  19. 第三篇 Flask 中的 request
  20. 利用fork创建子进程

热门文章

  1. Linux系列(6):入门之文件与目录管理
  2. @click.prevent.self和@click.self.prevent区别
  3. PAT B1026.程序运行时间
  4. STL pair 常见用法详解
  5. VC++2017关于项目出现&quot;const char *&quot; 类型的实参与 &quot;char *&quot; 类型的形参不兼容错误的解决方法
  6. python-day7(正式学习)
  7. WPF 异步加载窗体
  8. STM32的堆与栈与编译信息查看
  9. Centos系统修改docker默认网络参数
  10. 怎样在 Vue 里面使用自定义事件将子组件的数据传回给父组件?