最近在看一些redis的东西稍微demo来一下
创建一个springboot项目
1.pom文件搞起 用idea 直接输入redis就会有提示 相对其他工具简单很多
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
不错的一个亮点以前都需要自己去copy过来验证挺麻烦
配置文件搞起
springboot配置应用端口
spring.application.name=redisTest
server.port=9090
#redis 索引库
spring.redis.database=0
# redis 服务器地址
spring.redis.host= 127.0.0.1
# redis 端口号
spring.redis.port=6379
# redis 密码
spring.redis.password=
# redis 最大连接数
spring.redis.jedis.pool.max-active=8
# redis 最大的阻塞数
spring.redis.jedis.pool.max-wait=-1
# 超时
spring.redis.timeout=0
接下来就简单很多了RedisTemplate
@Autowired
RedisTemplate redisTemplate;
/**
* @Description TODO 插入建值
* @Author Tan.li
* @Date 2020-08-31
*/
public void redisPut(String key,String value){
redisTemplate.opsForValue().set(key,value);
}
/**
* @Description TODO 获取值
* @Author Tan.li
* @Date 2020-08-31
*/
public String redisGet(String key){
return String.valueOf(redisTemplate.opsForValue().get(key));
}
/**
* @Description TODO 删除key
* @Author Tan.li
* @Date 2020-08-31
*/
public void deleteRedisKey(String key){
redisTemplate.delete(key);
}
/***
* @MethodName bathDeleteDedisKey
* @Description TODO 批量删除
* @param
* @param key
* @Return void
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public void batchDeleteDedisKey(String...key){
if (key.length==1){
redisTemplate.delete(key[0]);
}else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
/**
* @Description TODO 判断key是否存在
* @Author Tan.li
* @Date 2020-08-31
*/
public boolean hasKey(String key){
return redisTemplate.hasKey(key);
}
/**
* @Description TODO 存储建值 在加有效时长
* @Author Tan.li
* @Date 2020-08-31
*/
public void redisPutTime(String key,String value,long time){
redisTemplate.opsForValue().set(key,value,time);
}
/***
* @MethodName incrementRedisKey
* @Description TODO redis 缓存的增加因子 意思是 当数key的value是1 如果传入因子 1 1+1 value =2
* 减因子 就是负数理解
* @param
* @param key
* @param datatl
* @Return void
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public void incrementRedisKey(String key ,long datatl){
redisTemplate.opsForValue().increment(key,datatl);
}
/**
* @Description TODO 获取路径下所有key
* @Author Tan.li
* @Date 2020-08-31
*/
public Set keys(String pathKey){
return redisTemplate.keys(pathKey);
}
/**
* @MethodName redisOpsSet
* @Description TODO 获取Set中的值
* @param
* @param key
* @Return java.util.Set
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public Set redisOpsSet(String key){
return redisTemplate.opsForSet().members(key);
}
/***
* @MethodName redisOpsput
* @Description TODO
* @param
* @param key
* @param value
* @Return void
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public void redisOpsput(String key,String...value){
redisTemplate.opsForSet().add(key,value);
}
/**
* @MethodName redisOpsSetisMembers
* @Description TODO 判断是否存在 Set中是否存在
* @param
* @param key
* @param obj
* @Return boolean
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public boolean redisOpsSetisMembers(String key,Object obj){
return redisTemplate.opsForSet().isMember(key,obj);
}
/***
* @MethodName redisOpsSetRemove
* @Description TODO
* @param
* @param key
* @param objs
* @Return boolean
* @Author tanli45
* @Date 2020-08-31
* @Since 1.0
*/
public boolean redisOpsSetRemove(String key,Object...objs) {
try {
long size = redisTemplate.opsForSet().remove(key, objs);
if (size >= 0) {
return true;
}
} catch (Exception e) {
return false;
}
return false;
}
redis用的就是存入进去值进行缓存起来,等调用直接从缓存中捞出来用,通过redis我们做了很多其他的操作如分布式锁,比如用户登录几次之后锁定五分钟之后在进行操作,短信频繁发送。。。。。等等业务场景都运用。