原标题:在java中redis的使用、导包依赖、配置、及其封装
一、在pom.xlm文件中引入依赖包
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.boot
spring-boot-starter-data-redis-reactive
二、application.properties文件中配置
spring.redis.host=106.12.217.124
spring.redis.port=6379
spring.redis.password=123123
spring.redis.database=0
三、配置文件读取RedisConfig类
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate getRedisTemplate(RedisConnectionFactory factory){
RedisTemplate redisTemplate=new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
return redisTemplate;
}
}
四、封装RedisUtils增删除工具类
@Component
public class RedisUtils {
@Resource
private RedisTemplate redisTemplate;
public boolean set(String key,String value){
try {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
vo.set(key,value);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
public boolean set(String key,long seconds,String value){
try {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
vo.set(key,value);
expire(key,seconds);
return true;
}catch (Exception e){
e.printStackTrace();
return false;
}
}
public Long getExpire(String key){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
return redisTemplate.getExpire(key);
}
public boolean expire(final String key,final long expireTime){
return redisTemplate.execute(new RedisCallback() {
@Override
public Boolean doInRedis(RedisConnection redisConnection) throws DataAccessException {
boolean flag=false;
try {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
byte keys[]=new StringRedisSerializer().serialize(key);
flag=redisConnection.expire(keys,expireTime);
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
});
}
public Object get(String key){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
return vo.get(key);
}
public void delete(String key){
try {
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.delete(key);
}catch (Exception e){
e.printStackTrace();
}
}
public boolean exist(String key){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
Object value = vo.get(key);
if (value==null||value==""){
return false;
}else{
return true;
}
}
public boolean update(String key,String value){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
ValueOperations vo=redisTemplate.opsForValue();
Long expireTime=redisTemplate.getExpire(key);
if (expireTime==null){
return false;
}
if (expireTime==-2||expireTime==0){
return false;
}
vo.set(key,value);
if (expireTime>0){
expire(key,expireTime);
}
return true;
}
}
五、Controller层调用使用
责任编辑: