一、pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.3.RELEASE</version> </dependency>二、application.yml添加redis配置 配置如下: cache: type: redis
redis: host: 127.0.0.1 port: 6379 pool: max-idle: 20 #连接池中最大空闲连接数 min-idle: 1 #连接池中最小空闲连接数 max-active: 20 #连接池最大连接数,为负值说明没有限制 max-wait: 60000 #连接池最大阻塞等待时间,为负数说明没有限制 database: 0
三、本地安装redis(我在本地安装redis) 1、下载redis: 下载最新的windows X64版本的压缩包,我们使用解压缩版,直接解压后就可以使用,解压后如下图:
2、开启redis服务端 cmd命令窗口执行运行Redis,我们首先使用cmd命令进入到Redis解压目录并且执行redis-server.exe redis.windows.conf命令即可 注意:redis默认端口为6379,如果端口被占用,修改redis.windows.conf配置文件下端口配置即可。 开启后如下图:
3、使用redis-cli开启自带客户端(不推荐使用,可使用redis_desktop_manager)
4、安装redis desktop manager 下载redis desktop manager安装包,安装后连接本地redis
四、配置redisConfiguration 配置redisConfiguration.java,配置路径与DemoApplication同级,主要解决乱码问题,配置内容如下:
@Configuration @EnableCaching public class RedisConfiguration extends CachingConfigurerSupport { //自定义cacheManager缓存管理器 @Bean public CacheManager cacheManager(RedisConnectionFactory factory) { RedisSerializer<String> redisSerializer = new StringRedisSerializer(); //解决查询缓存转换异常的问题 ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd")); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); //使用GenericJackson2JsonRedisSerializer 作为redisTemplate 的序列化执行器 GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om); //配置序列化(解决乱码的问题) RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ZERO) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer)) .disableCachingNullValues(); RedisCacheManager cacheManager = RedisCacheManager.builder(factory) .cacheDefaults(config) .build(); return cacheManager; }} 五、DemoApplication启动类添加@EnableCaching注解 如下图所示:
六、使用redis作为缓存 @Cacheable : Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素,如果存在就不再执行该方法,而是直接从缓存中获取结果进行返回,否则才会执行并将返回结果存入指定的缓存中。 @CacheEvict : 清除缓存,调用方法后从缓存中删除对应key的数据。 @CachePut : @CachePut也可以声明一个方法支持缓存功能。使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。 例子:
七、使用redis-cli客户端查看redis缓存数据(不推荐) 需要注意的是,解决了乱码后,发现中文还是乱码,要设置窗口的编码,使用指令chcp 65001 换成UTF-8代码页,在命令行标题栏上点击右键,选择"属性"->“字体”,将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口,然后使用指令redis-cli --raw查看redis缓存数据
八、使用redis_desktop_manager客户端查看redis缓存数据