redis学习笔记(二)---springboot整合docker拉取的redis

最近在b站学习redis,学到了springboot整合redis,本期待着up主教我怎么在springboot上整合虚拟机中的redis,up主无赖地 开启了windows下的redis,于是乎我自己便捣鼓了起来,使用docker摘取了redis镜像,通过端口映射出来,成功与自己的springboot项目整合起来,在此简单记录一下~

在docker中拉取redis镜像

  1. 先用xshell连上虚拟机
  2. 先开启docker(没有docker的小伙伴先去装一下,这里不做介绍哈)
sudo systemctl start docker  #开启docker
sudo systemctl enable docker  # 设置docker开机自启
  1. 拉取镜像
docker pull redis     # 默认下载最新版本,想下载其他版本可自行设置
docker images    # 下载完成后可以用此命令查看下载的镜像
  1. 为镜像创建容器并启动
  • -d 表示在后台运行
  • -p 进行端口映射,第一个值是宿主端口,第二个值是容器端口,为了进行后续配置的时候进行区分,两个端口不设置成同一个端口号,记住我们映射的主机端口是6378
docker run -d -p 6378:6379 redis
docker ps # 可查看当前进行中的容器

创建springboot项目并整合redis

  1. 创建springboot项目
    都来学springboot整合redis怎么创建项目就不用多说了吧,只要注意在创建项目的时候,要勾选上一下Spring Data Redis这一项,方便项目自动导入需要的依赖

    如果项目已经创建,也可以pom文件里加上这个依赖
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 简单介绍
    可以先在idea通过ctrt n指令查找一下RedisAutoConfiguration这个类,内容如下,我们要获得的就是这个RedisTemplate这个类的对象来实现在springboot项目中对redis进行操作
@Configuration(
    proxyBeanMethods = false
)
@ConditionalOnClass({RedisOperations.class})
@EnableConfigurationProperties({RedisProperties.class})
@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})
public class RedisAutoConfiguration {
    public RedisAutoConfiguration() {
    }

    @Bean
    @ConditionalOnMissingBean(
        name = {"redisTemplate"}
    )
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
        RedisTemplate<Object, Object> template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        return template;
    }

    @Bean
    @ConditionalOnMissingBean
    public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {
        StringRedisTemplate template = new StringRedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
        return template;
    }
}

现查看一下RedisProperties这个类,看看在application.properties中我们可以配置些什么,从以下内容中我们可以看到

  • 在application.properties配置文件中我们要配置redis相关的东西,可以使用spring.redis开头,后面跟上对应要配的变量名
  • redis中的部分变量已经有了默认的配置:使用0号数据库、host默认本机、端口默认6379
@ConfigurationProperties(
    prefix = "spring.redis"
)
public class RedisProperties {
    private int database = 0;
    private String url;
    private String host = "localhost";
    private String password;
    private int port = 6379;
    private boolean ssl;
    private Duration timeout;
    private String clientName;
    private RedisProperties.Sentinel sentinel;
    private RedisProperties.Cluster cluster;
    private final RedisProperties.Jedis jedis = new RedisProperties.Jedis();
    private final RedisProperties.Lettuce lettuce = new RedisProperties.Lettuce();

    public RedisProperties() {
    }
    //变量的getset方法就省略不贴出来了
}
  1. 进入application.properties配置文件进行配置
  • 这里的host配置的是虚拟机的ip地址
  • 这里的port配置的是映射的宿主端口
spring.redis.host=192.168.1.149
spring.redis.port=6378
  1. 进行简单测试
    创建一个测试类,注入我们配置好了的redisTemplate对象,简单地set一个值再get一下
@SpringBootTest
class DemoApplicationTests {
    @Autowired
    private RedisTemplate redisTemplate;
    @Test
    void contextLoads() {
        redisTemplate.opsForValue().set("k1","v1");
        System.out.println(redisTemplate.opsForValue().get("k1"));
    }
}

大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值