SpringBoot Redis五种数据类型的简单操作

一身转战三千里,一剑曾当百万师。这篇文章主要讲述SpringBoot Redis五种数据类型的简单操作相关的知识,希望能为你提供帮助。
简单实现SpringBoot集成Redis操作数据类型
Redis共有五种数据类型:

  1. string字符串类型 (字符串、整数或者浮点数)
  2. hash类型 (包含键值对的无序散列表)
  3. list类型 (链表)
  4. set集合类 (无序集合)
  5. sortedSet有序集合 (有序集合)
【SpringBoot Redis五种数据类型的简单操作】string操作
@Test public void stringTest() //添加 redisTemplate.opsForValue().set("test","hello world"); //获取 String test = (String) redisTemplate.opsForValue().get("test"); //设置失效时间 redisTemplate.opsForValue().getOperations().expire("test",10,TimeUnit.SECONDS); //删除 redisTemplate.delete("test"); log.info("test:",test);

打印结果:
SpringBoot Redis五种数据类型的简单操作

文章图片

hash操作
@Test public void hashTest() //添加单个值 redisTemplate.opsForHash().put("hash","test","test"); //添加map Map< String,Object> map = new HashMap< > (); map.put("test1","test1"); map.put("test2","test2"); map.put("test3","test3"); redisTemplate.opsForHash().putAll("map",map); //获取单个值 String test = (String) redisTemplate.opsForHash().get("hash", "test"); //获取整个散列值 Map< Object, Object> map1 = redisTemplate.opsForHash().entries("map"); log.info("单个值:",test); log.info("整个散列值:",map1);

打印结果:
SpringBoot Redis五种数据类型的简单操作

文章图片

list操作
@Test public void listTest() //从左边插入 redisTemplate.opsForList().leftPush("list","2"); redisTemplate.opsForList().leftPush("list","1"); redisTemplate.opsForList().leftPush("list","0"); //从右边插入 redisTemplate.opsForList().rightPush("list","3"); redisTemplate.opsForList().rightPush("list","4"); redisTemplate.opsForList().rightPush("list","5"); //范围取值 0 -1 取全部 List list = redisTemplate.opsForList().range("list", 0, -1); log.info("全部数据list:",list); String list1 = redisTemplate.opsForList().index("list", 3); log.info("下标为三的数据list:",list1); String list2 = redisTemplate.opsForList().leftPop("list"); log.info("从左边删除并返回值list:",list2); String list3 = redisTemplate.opsForList().rightPop("list"); log.info("从右边删除并返回值list:",list3); Long list4 = redisTemplate.opsForList().size("list"); log.info("list长度:",list4); //设置失效时间 redisTemplate.opsForList().getOperations().expire("list",10, TimeUnit.SECONDS);

运行结果:
SpringBoot Redis五种数据类型的简单操作

文章图片

set操作
@Test public void setTest() //如果数据存在返回0 不存在返回插入数据的个数 Long add = redisTemplate.opsForSet().add("set", "string", "hash", "list","list"); //获取集合 Set< String> set = redisTemplate.opsForSet().members("set"); //因为set是不可重复的 所以只有一个list log.info("获取集合set:",set); log.info("判断set是否存在:",redisTemplate.opsForSet().isMember("set","set")); redisTemplate.opsForSet().add("set2", "string", "hash", "set"); log.info("返回集合的并集:",redisTemplate.opsForSet().union("set","set2")); log.info("返回集合的交集:",redisTemplate.opsForSet().intersect("set","set2")); log.info("返回集合set中存在set2中不存在的数据:",redisTemplate.opsForSet().difference("set","set2"));

运行结果
SpringBoot Redis五种数据类型的简单操作

文章图片

sortedSet
@Test public void sortSet() //与list操作相似 //添加数据 score代表权重 redisTemplate.opsForZSet().add("zset","string",1); redisTemplate.opsForZSet().add("zset","hash",2); redisTemplate.opsForZSet().add("zset","list",3); redisTemplate.opsForZSet().add("zset","list",4); //值相会将权重替换掉 //获取全部的值 log.info("zset全部的值:",redisTemplate.opsForZSet().range("zset",0,-1)); //获取值对应的score log.info("获取list对应的score:",redisTemplate.opsForZSet().score("zset","list")); //获取值对应排名 从0开始 log.info("获取list对应的排名:",redisTemplate.opsForZSet().rank("zset","list")); //根据score范围获取值 score改为时间戳 可实现延时队列 log.info("根据score范围获取值 :",redisTemplate.opsForZSet().rangeByScore("zset",2,3));

运行结果:
SpringBoot Redis五种数据类型的简单操作

文章图片


    推荐阅读