序列化
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
@Slf4j
@Configuration
@EnableConfigurationProperties({RedisProperties.class})
public class RedisAutoConfiguration {
@Bean
public RedisSerializer<String> redisKeySerializer() {
return RedisSerializer.string();
}
@Bean
public RedisSerializer<Object> redisValueSerializer() {
return RedisSerializer.json();
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory, RedisSerializer<String> redisKeySerializer, RedisSerializer<Object> redisValueSerializer) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
redisTemplate.setDefaultSerializer(redisValueSerializer);
redisTemplate.setKeySerializer(redisKeySerializer);
redisTemplate.setHashKeySerializer(redisKeySerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
注入RedisTemplate
@Resource
private RedisTemplate redisTemplate;
将map整个存入redis
Map<String,Boolean> map = new HashMap<>(2);
map.put("1",true);
map.put("2",false);
redisTemplate.opsForHash().putAll(“redis键”,map);
保存map值到指定key true为map的值
redisTemplate.opsForHash().put("redis键","map键",true);
获取整个map
redisTemplate.opsForHash().entries("redis键");
根据map键获取map值
redisTemplate.opsForHash().get("redis键","map键");
根据redis键和map键删除对应值 map键传数组可删除多个
redisTemplate.opsForHash().delete(“redis键”, "map键");
获取是否存在redis键
Boolean flag = redisTemplate.hasKey(“redis键”)
根据redis键删除
Boolean flag = redisTemplate.delete(“redis键”)