这里 我们终端连接 Redis数据库
然后 我们在终端输入命令 set一个name 值为 xmm 然后终端 get name 也是拿到了值
然后 再拿java操作get name 要么给你个null 要不就直接异常
这边 我们需要另一个API StringRedisTemplate
因为RedisTemplate有两个泛型 我们给的是String, Object 它是以对象形式操作的
StringRedisTemplate是字符串形式操作的
而我们在终端 Redis 客户端装进去的数据 都是字符串形式操作的
然后 我们在config目录下创建一个类 名字随便取 叫 StringRedisConfig 参考代码如下
package com.example.webdom.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
@Configuration
public class StringRedisConfig {
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
}
然后 将测试类代码更改如下
package com.example.webdom;
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.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
@SpringBootTest
public class WebDomApplicationTests {
@Autowired
private StringRedisTemplate StringRedisTemplate;
@Test
void set() {
ValueOperations<String, String> ops = StringRedisTemplate.opsForValue();
ops.set("hh","你好");
}
@Test
void get() {
ValueOperations<String, String> ops = StringRedisTemplate.opsForValue();
Object age = ops.get("name");
System.out.println(age);
}
}
这里 我们条件装配了 StringRedisTemplate
然后 我们在声明它时 很明显 我们的泛型必须都是双字符串了 <String, String>
然后 get和set的方式还是没有变的
我们重新执行get 看看name有没有问题
很明显 这样就运行成功了
这里需要强调 设置和修改是同样的 比如 你系统中没有name 你 set name 111 初始值是 111 字段name
当你再次 set name 222 那么 它就会将name的值 修改为 222 没则设置 有则覆盖