# redis的使用实战篇
**Repository Path**: limfff/the-use-of-redis
## Basic Information
- **Project Name**: redis的使用实战篇
- **Description**: redis的使用实战篇
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2020-09-17
- **Last Updated**: 2024-07-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Redis的实用实战篇
## 1、导入依赖
```pom
org.springframework.boot
spring-boot-starter-data-redis
io.lettuce
lettuce-core
redis.clients
jedis
```
## 2、在yml或者properties 配置文件配置redis主机地址:
~~~properties
spring.redis.host:xxx.xxx.xxxx
spring.reids.port:6379 根据自己实际情况来设置
~~~
## 3、根据情况自己自定义设置redis配置文件属性
~~~
spring.cache.type=redis 设置使用redis
spring.cache.redis.time-to-live=3600000 定时删除
spring.cache.redis.use-key-prefix=true #缓存数据key是否使用前缀,默认是true
spring.cache.redis.cache-null-values=true #是否缓存null数据,默认是false,可以用来解决缓存穿透
~~~
注意,上面的配置是由于是自己接管配置,不适用autoconfigrution所以,我们需要自己写一个配置类。如果你不手动接管,使用redis帮配好的配置,就不用写配置类。
如果不自己写配置类的话,自动配置类是使用java序列化机制。到redis看到的会是一堆java序列化符号,不是json格式。json格式的有点就是跨平台,所有语言都能够识别, 以后如果是多语言项目,都可以通过解析json格式的数据,来分析数据,获取到想要的信息。所以建议大家还是自己配置一下 配置类,下面是我的配置类,仅供参考。
~~~java
package com.atguigu.gulimall.product.config;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@EnableCaching
@EnableConfigurationProperties(CacheProperties.class)
public class MyCacheConfig {
// @Autowired
// CacheProperties cacheProperties;
@Bean
public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
config = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()));
config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
CacheProperties.Redis redis = cacheProperties.getRedis();
if (redis.getTimeToLive() != null) {
config = config.entryTtl(redis.getTimeToLive());
}
if (redis.getKeyPrefix() != null) {
config = config.prefixKeysWith(redis.getKeyPrefix());
}
if (!redis.isCacheNullValues()) {
config = config.disableCachingNullValues();
}
if (!redis.isUseKeyPrefix()) {
config = config.disableKeyPrefix();
}
return config;
}
}
~~~
## 4、在主入口开启缓存或者相关配置类中开启
~~~
@EnableCaching
~~~
然后就可以在类或者方法上使用
~~~
@Cacheable(
value = {"queryPage"},
key = "#root.method.name") //
~~~
然后就可以测试
controller 了~~~
然后再去redis 可视化工具看看数据~