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