本文记录在springboot项目中使用redis存储数据。
在项目中引入需要的jar包
12 5org.springframework.boot 3spring-boot-starter-data-redis 46 9org.springframework.boot 7spring-boot-starter-web 810 org.springframework.boot 11spring-boot-starter-test 12test 13
在属性文件application.properties中加入redis配置信息,这样我们就可以使用springboot给我们提供的RedisTemplate来访问redis
1 # redis 属性信息 2 ## redis数据库索引(默认为0) 3 spring.redis.database=0 4 ## redis服务器地址 5 spring.redis.host=localhost 6 ## redis服务器连接端口 7 spring.redis.port=6379 8 ## redis服务器连接密码(默认为空) 9 spring.redis.password=10 ## 连接池最大连接数(使用负值表示没有限制)11 spring.redis.jedis.pool.max-active=812 ## 连接池中的最大空闲连接13 spring.redis.jedis.pool.max-idle=814 ## 连接池最大阻塞等待时间(使用负值表示没有限制)15 spring.redis.jedis.pool.max-wait=-1ms16 ## 连接池中的最小空闲连接17 spring.redis.jedis.pool.min-idle=0
创建一个要操作的实体对象
1 public class City implements Serializable { 2 private static final long serialVersionUID = 9027850373102177538L; 3 4 private Integer id; 5 private String citeCode; 6 private String cityName; 7 8 public City() {} 9 10 public City(Integer id, String citeCode, String cityName) {11 this.id = id;12 this.citeCode = citeCode;13 this.cityName = cityName;14 }15 16 @Override17 public String toString() {18 return "City{" +19 "id=" + id +20 ", citeCode='" + citeCode + '\'' +21 ", cityName='" + cityName + '\'' +22 '}';23 }24 25 //省略get和set方法26 }
测试
1 @RunWith(SpringRunner.class) 2 @SpringBootTest 3 public class SpringbootDataRedisApplicationTests { 4 5 @Autowired 6 private RedisTemplate redisTemplate; 7 8 @Test 9 public void testSet(){10 redisTemplate.opsForValue().set("cityInfoStr", new City(1, "BJ", "北京").toString());11 System.out.println("获取字符串值:"+redisTemplate.opsForValue().get("cityInfoStr"));12 Listlist = Collections.synchronizedList(new ArrayList ());13 list.add(new City(1,"BJ","beijing"));14 list.add(new City(2,"SH","shanghai"));15 redisTemplate.opsForList().leftPush("cityList", list);16 System.out.println("获取集合值:"+redisTemplate.opsForList().index("cityList",1));17 18 List list1 = Collections.synchronizedList(new ArrayList ());19 list1.add(new City(1,"WH","wuhan"));20 list1.add(new City(2,"XA","xian"));21 redisTemplate.opsForList().rightPush("cityList", list1);22 System.out.println("获取集合值:"+redisTemplate.opsForList().index("cityList",2));23 }24 25 }
需要注意opsFor...的操作对象不一样:
opsForValue:操作字符串对象
opsForList:操作list对象
opsForHash:操作hash对象
opsForSet:操作Set对象
opsForZset:操作有序的Set对象
所以我们在保存相关对象时需要用相应的方法。