在 Java 中 操作 Redis <springboot>
使用windows系统下idea操作使用,首先要确认系统下redis安装并开启了服务
- 创建springboot 项目
- pom.xml文件下添加 Redis 的依赖
- application.properties或者application.yml中添加redis配置
- 创建测试类,增加@RunWith(SpringRunner.class)注解 进行单元测试
- 在测试类下 注入 RedisRemplate 类 ,进行测试操作
参考文章 : springboot项目添加redis
package com.paopao.springbootredis; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.connection.DataType; import org.springframework.data.redis.core.*; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; @SpringBootTest @RunWith(SpringRunner.class) class SpringbootredisApplicationTests { @Autowired private RedisTemplate redisTemplate; /** * 操作 string 类型数据 */ @Test void testString() { ValueOperations value = redisTemplate.opsForValue(); value.set("myValue2","xiaominghaha2"); String myValue2 = (String) value.get("myValue2"); System.out.println(myValue2); value.set("key1","value1",10l, TimeUnit.SECONDS); Boolean aBoolean = value.setIfAbsent("myValue2", "nanjing");//当某个可以不存在的时候设置,如果存在返回false System.out.println(aBoolean); Boolean aBoolean2 = value.setIfAbsent("myValue0", "nanjing");//当某个可以不存在的时候设置,如果存在返回false } /** * 操作 Hash 类型数据 */ @Test void testHash(){ HashOperations hash = redisTemplate.opsForHash(); //存值 hash.put("002","name","xiaominghaha"); hash.put("002","age","66"); hash.put("002","address","nanjing"); //取值 String age = (String) hash.get("002", "age"); System.out.println(age); //获取 hash 结构中的所有字段 Set keys = hash.keys("002"); for (Object key : keys) { System.out.println(key); } //获取 hash 结构中的所有值 List values = hash.values("002"); for (Object value : values) { System.out.println(value); } } /** * 操作list类型数据 */ @Test void listTest(){ ListOperations list = redisTemplate.opsForList(); //存值 list.leftPush("myList", "a"); list.leftPushAll("myList", "b", "c", "d"); //取值 List myList = list.range("myList", 0, -1); for (Object value : myList) { System.out.println(value); } //获得列表的长度 Long size = list.size("myList"); int lSize = size.intValue(); for (int i = 0; i < lSize; i++) { //出队列 String elment = (String) list.rightPop("myList"); System.out.println(elment); } } /** * 操作 set 类型数据 */ @Test void setTest(){ SetOperations set = redisTemplate.opsForSet(); //存值 set.add("mySet","a","b","c","x","y"); //取值 Set mySet = set.members("mySet"); for (Object o : mySet) { System.out.println(o); } //删除成员 set.remove("mySet","a","b"); //取值 mySet = set.members("mySet"); for (Object o : mySet) { System.out.println(o); } } /** * 操作 zset 类型的数据 */ @Test void zSetTest(){ ZSetOperations zSet = redisTemplate.opsForZSet(); //存值 zSet.add("myzset", "a",10.0); zSet.add("myzset", "b",11.0); zSet.add("myzset", "c",12.0); zSet.add("myzset", "a",13.0);//value重复会自动取消添加 //取值 Set myzset = zSet.range("myzset", 0, -1); for (Object o : myzset) { System.out.println(o); } System.out.println("-----------------------"); //修改分数 zSet.incrementScore("myzset","b",20); //取值 myzset = zSet.range("myzset", 0, -1); for (Object o : myzset) { System.out.println(o); } System.out.println("-----------------------"); //删除成员 zSet.remove("myzset","a","b"); //取值 myzset = zSet.range("myzset", 0, -1); for (Object o : myzset) { System.out.println(o); } System.out.println("-----------------------"); } /** * 通用操作,针对不同的数据类型都可以操作 */ @Test void testCommon(){ //获取 Redis 中的所有的key Set keys = redisTemplate.keys("*"); for (Object key : keys) { System.out.println(key); } //判断某个可以是否存在 Boolean itcast = redisTemplate.hasKey("itcast"); System.out.println(itcast); //删除指定key redisTemplate.delete("myzset"); //获取指定key对应的value的数据类型 DataType dataType = redisTemplate.type("mySet"); System.out.println(dataType.name()); } }