Redis缓存配置及使用

一、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缓存数据
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值