Springboot整合redis
1在项目的pom.xml文件中引入 redis的jar
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.在yml配置文件中配置redis连接
3.redis工具类
package com.el.webservice.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; /** * @ProjectName: springboot_webservice * @Package: com.el.webservice.utils * @ClassName: RedisUtils * @Author: ** * @Description: * @Date: 2020/5/26 9:58 * @Version: 1.0 */ @Component public class RedisUtils { @Autowired private RedisTemplate<String,String> redisTemplate; /** * 读取缓存 * @param key * @return */ public String get(final String key){ return redisTemplate.opsForValue().get(key); } /** * 写入缓存 * @param key * @param value * @return */ public boolean set(final String key,String value){ boolean result = false; try { redisTemplate.opsForValue().set(key, value); result = true; }catch (Exception e){ e.printStackTrace(); } return result; } /** * 更新缓存 * @param key * @param value * @return */ public boolean getAndSet(final String key,String value){ boolean result = false; try { redisTemplate.opsForValue().getAndSet(key, value); result = true; }catch (Exception e){ e.printStackTrace(); } return result; } /** * 删除缓存 * @param key * @return */ public boolean delete(final String key){ boolean result = false; try{ redisTemplate.delete(key); result = true; }catch (Exception e){ e.printStackTrace(); } return result; } /** * 设置过期时间 * @param key * @return */ public boolean t(final String key){ boolean result = false; try { redisTemplate.expire(key, 1000, TimeUnit.MILLISECONDS); result = true; }catch (Exception e){ e.printStackTrace(); } return result; } }
4.测试结果展示
@Autowired private RedisUtils redisUtils; @RequestMapping("/redis") public String getUserCount(){ String code =getuuid(); redisUtils.set("token",code); String token = redisUtils.get("token"); System.out.println("token==================="+token); redisUtils.getAndSet("token","1111"); String token2 = redisUtils.get("token"); System.out.println("token2==================="+token2); redisUtils.delete("token"); String token3 = redisUtils.get("token"); if(token3==null){ System.out.println("token3==================="+null); }else{ System.out.println("token3==================="+token3); } return code; } private String getuuid(){ String value = UUID.randomUUID().toString(); return value; }
RedisTemplate相关使用
- //向redis里存入数据和设置缓存时间
- stringRedisTemplate.opsForValue().set(key, "100", 60 * 10, TimeUnit.SECONDS);
- //val做-1操作
- stringRedisTemplate.boundValueOps(key).increment(-1);
- //根据key获取缓存中的val
- stringRedisTemplate.opsForValue().get(key)
- //val +1
- stringRedisTemplate.boundValueOps(key).increment(1);
- //根据key获取过期时间
- stringRedisTemplate.getExpire(key);
- //根据key获取过期时间并换算成指定单位
- stringRedisTemplate.getExpire(key,TimeUnit.SECONDS);
- //根据key删除缓存
- stringRedisTemplate.delete(key);
- //检查key是否存在,返回boolean值
- stringRedisTemplate.hasKey(key);
- //向指定key中存放set集合
- stringRedisTemplate.opsForSet().add(key, "1","2","3");
- //设置过期时间
- stringRedisTemplate.expire(key,1000 , TimeUnit.MILLISECONDS);
- //根据key查看集合中是否存在指定数据
- stringRedisTemplate.opsForSet().isMember(key, "1");
- //根据key获取set集合
- stringRedisTemplate.opsForSet().members(key);
- //验证有效时间
- Long expire = redisTemplate.boundHashOps(key).getExpire();
- System.out.println("redis有效时间:"+expire+"S");