<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.0</version>
</dependency>
private Jedis jedis;
@BeforeEach
void setUp() {
jedis = new Jedis("127.0.0.1", 6379);
}
@Test
void jedisString() {
String set = jedis.set("name", "allen");
System.err.println(set);
String name = jedis.get("name");
System.err.println(name);
}
@AfterEach
void tearDown() {
if (jedis != null) {
jedis.close();
}
}
public class JedisConFactory {
private static JedisPool jedisPool = null;
static {
//配置连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
//设置最大连接数
poolConfig.setMaxTotal(8);
//设置最大空闲数
poolConfig.setMaxIdle(8);
//设置最小空闲数
poolConfig.setMinIdle(0);
jedisPool = new JedisPool(poolConfig,"127.0.0.1",6379);
}
public static Jedis getJedis(){
return jedisPool.getResource();
}
}

<!-- spring boot redis缓存引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- lecttuce 缓存连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
spring:
redis:
host: 120.79.157.129
port: 6379
database: 2
# password: #默认为空
lettuce:
pool:
max-active: 20 #最大连接数,负值表示没有限制,默认8
max-wait: -1 #最大阻塞等待时间,负值表示没限制,默认-1
max-idle: 8 #最大空闲连接,默认8
min-idle: 0 #最小空闲连接,默认0
@Configuration
public class RedisConfig {
@Autowired
private RedisTemplate redisTemplate;
//有则取出key值所对应的值
redisTemplate.opsForValue().get(key)
}
RedisTemplate可以接收任意Object作为值写入Redis,只不过写前会把Object写成字节形式,默认是JDK序列化,得到的结果如下:

解决办法(两种):

实现效果:

为了节省内存空间,统一使用String序列化器,要求只能存储String类型的key和value。当存储java对象时,手动完成序列化。
