SpringBoot配置阿里云Redis

  • 购买阿里云上的Redis

    设置的密码是tgy153RFVHU14863
  • 购买后,申请公网地址,以便其他IP地址能访问

    公网地址
  • 设置白名单,将127.0.0.1改成0.0.0.0/0,以便该redis让其他IP也能访问,而不是只能本机访问
    并创建一个账号,本例中账号为keyi,密码为tgy153RFVHU14863

  • 使用redis可视化客户端测试连接,host是申请的公网地址,Auth是密码,其值为账号:密码
    本例中密码为:keyi:tgy153RFVHU14863,端口号默认,Name随便填。
    可视化工具是Another Redis Desktop Manager

  • 测试成功后,以下就是使用SpringBoot连接redis数据库并存储值。
    首先,导入redis场景依赖,底层默认使用Lettuce客户端连接redis数据库

    <!--
        redis,Nosql数据库,也可以做数据库缓存,Key/Value存储
        默认使用Lettuce,redis客户端连接数据库
    -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

    你也可以使用jedis客户端,Springboot底层默认对这两个redis客户端都支持,当导入两个依赖时
    需要额外指定底层使用哪一个客户端连接redis

    <!--jedis客户端-->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>
  • 然后在boot配置文件中配置连接参数

    spring:
      redis:
        host: r-bp1i6comctc7k7lrd1pd.redis.rds.aliyuncs.com	#redis公网地址
        password: keyi:tgy153RFVHU14863	#密码,redis账号:redis密码
        port: 6379
        client-type: jedis	#指定使用jedis连接数据库
  • 测试

    @Autowired
    StringRedisTemplate redisTemplate;
    
    @Test
    public void redisTest(){
    
        /*
            使用jedis客户端连接阿里云的redis数据库,从redis中读取数据
        */
    
        ValueOperations<String, String> ops = redisTemplate.opsForValue();
        ops.set("万一","茜茜");
        String value = ops.get("万一");
        System.out.println(value);	
    }
    
    

    输出结果就为茜茜,使用可视化客户端可以查得到

  • 分析下引入redis场景依赖的自动配置类

    1)redis的核心自动配置类,RedisAutoConfiguration,
    	资源配置类,RedisProperties,对应boot配置文件为:spring.redis
    2)连接工厂是准备好的,LettuceConnectionConfiguration,JedisConnectionConfiguration,
    	redis客户端,用来访问云redis
    3)自动注入了RedisTemplate<Object,Object>,用来操作redis,操作的key/value都是Object类型的
    4)自动注入了StringRedisTemplate,同上,只不过,该对象用来操作key/value都是string类型的数据
    5)底层我们只需要使用StringRedisTemplate,RedisTemplate就可以操作redis