idea和redis数据库链接

一,首先在idea中的pom.xml文件中引入配置类

具体如下:

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.7.1</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- Lettuce连接池 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

        <!-- hutool -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
            <!--排除swagger2的annotations和models依赖,然后再引入1.5.21版本的annotations和models依赖-->
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--引入1.5.21版本的annotations和models依赖-->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.21</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.21</version>
        </dependency>

        <!--knife4j(swagger) -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.4</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.igeek.boot.Boot4DataRedisApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

为了方便测试引入swagger2依赖

其中要做好swagger的config配置类

二,开始写入redis的配置类

写redis的配置类

1.要学会参考maven中的文件编写适合自己需求的文件,要参考:Maven:org.springframework.boot:spring-boot-autoconfigure:2.7.1\spring-boot-autoconfigure-2.7.1.jar!\META-INF\spring\org.springframework.boot.autoconfigure.AutoConfiguration.imports

2.在其中ctrl+f 查找

RedisAutoConfiguration

 ctrl+n 进入

RedisAutoConfiguration
在@EnableConfigurationProperties(RedisProperties.class)中进入RedisProperties,注意还要配置application.properties文件,可以在RedisProperties中查看参数,来配置redis

参考样例如下:(其中包含swagger,数据库等)

#------------    redis  ---------#
spring.redis.host=8.130.125.162
spring.redis.port=6333
spring.redis.password=123456
#spring.redis.password=7403Mmy!
spring.redis.database=0
spring.redis.timeout=18000

#spring.redis.client-type=jedis

spring.redis.lettuce.pool.enabled=true
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=3
spring.redis.lettuce.pool.max-wait=-1

#------------- Swagger2 ----------
spring.swagger2.enabled=true
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

logging.level.root=info
logging.level.com.igeek.boot.controller=debug
logging.file.name=./boot/boot_4_data_redis.log
logging.charset.file=UTF-8

3.通过RedisAutoConfiguration中

@ConditionalOnMissingBean(name = "redisTemplate")得知需要创建自己的
redisTemplate在结合
原有的stringRedisTemplate以及redisTemplate

复制

RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;

进入stringRedisTemplate复制

this.setKeySerializer(RedisSerializer.string());
this.setValueSerializer(RedisSerializer.string());
this.setHashKeySerializer(RedisSerializer.string());
this.setHashValueSerializer(RedisSerializer.string());
this();
this.setConnectionFactory(connectionFactory);
this.afterPropertiesSet();

全部写入有关RedisSerializer.string()怎么重写点击RedisSerializer.string()中.string()进入

可以看见

static RedisSerializer<String> string() {
    return StringRedisSerializer.UTF_8;
}

可知需要StringRedisSerializer

4.再在其中找到

5.参考如下

package com.igeek.boot.config;

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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * TODO
 *
 * @author xuxin
 * @since 2024/7/11
 */
@Configuration(proxyBeanMethods = false)
public class RedisConfig {
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate<String, Object> stringTemplate = new RedisTemplate<>();
        stringTemplate.setConnectionFactory(redisConnectionFactory);

        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();

//        this();
        stringTemplate.setKeySerializer(stringRedisSerializer);
        stringTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
        stringTemplate.setHashKeySerializer(stringRedisSerializer);
        stringTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);

        stringTemplate.setConnectionFactory(redisConnectionFactory);
        stringTemplate.afterPropertiesSet();
        return stringTemplate;
    }
}
三,写入相应的controller,entity,service之后开始运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值