springboot整合Redis
😄生命不息,写作不止
🔥 继续踏上学习之路,学之分享笔记
👊 总有一天我也能像各位大佬一样
🏆 一个有梦有戏的人 @怒放吧德德
🌝分享学习心得,欢迎指正,大家一起学习成长!
一、安装redis
到redis官网下载 https://redis.io/download
二、启动redis
在redis的目录下输入cmd(Windows环境下)
执行 redis-server.exe redis.windows.conf 开启
三、在springboot中整合
首先在破pow.xml导入坐标(这里不需要写版本,spring中已经定义了他的版本)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置相关的配置
# redis 导入相应的坐标后,进行配置,而它本身有默认配置,注意看自己的redis是否配置了密码
spring:
redis:
host: localhost
port: 6379
password: 12356
防止链接失败,需要在redis.windows.conf做一下配置先看一下是否有密码
protected-mode yes 改成 protected-mode no
吧bind 127.0.0.1这一行注释掉
四、测试set和get
1、用RedisTemplate
package com.lyd;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
@SpringBootTest
class Springboot16RedisApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
void set() {
ValueOperations ops = redisTemplate.opsForValue();
ops.set("age",41);
}
@Test
void get() {
ValueOperations ops = redisTemplate.opsForValue();
Object age = ops.get("age");
System.out.println(age);
}
// 操作哈希结构
@Test
void hset() {
HashOperations ops = redisTemplate.opsForHash();
ops.put("info","a","abc");
}
@Test
void hget() {
HashOperations ops = redisTemplate.opsForHash();
Object val = ops.get("info","a");
System.out.println(val);
}
}
2、用StringRedisTemplate
这样springboot就能读取redis的客户端
@SpringBootTest
public class StringRedisTemplateTest {
@Autowired
private StringRedisTemplate stringRedisTemplate;//这样springboot就能读取redis的客户端
@Test
void get() {
ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
String name = ops.get("name");
System.out.println(name);
}
}
springboot操作Redis客户端实现技术切换(jedis,默认lettuce)
老样子,首先要导入相关坐标
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
做配置,如果没配置,就是默认lettuce
client-type: jedis
Redis
lettcus与jedis区别
- jedis连接Redis服务器是直连模式,当多线程模式下使用jedis会存在线程安全问题,解决方案可以通过配置连接池使每个连接专用,这样整体性能就大受影响。
- lettcus基于Netty框架进行与Redis服务器连接,底层设计中采用StatefulRedisConnection。StatefulRedisConnection自身是线程安全的,可以保障并发访问安全问题,所以-一个连接可以被多线程复用。当然lettcus也支持多连接实例-一起工作。