如果直接在java上使用Redistemplate在数据库实际存储时会出现一些奇奇怪怪的乱码,所以使用Stringredistemplate,如果存储普通数据可以直接使用,如果存储对象,则要进行序列化操作
@SpringBootTest
class DemoApplicationTests {
//用于序列化和反序列化操作
private static final ObjectMapper mapper=new ObjectMapper();
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
void testString() throws IOException {
//序列化部分
//创建对象
User user=new User("xxxx",18);
//手动序列化
String json=mapper.writeValueAsString(user);
//写入数据
stringRedisTemplate.opsForValue().set("User:test",json);
//反序列化部分
//获取数据
String jsonUser=stringRedisTemplate.opsForValue().get("User:test");
//手动反序列化
User user1=mapper.readValue(jsonUser,User.class);
}
}
还有存哈希的
//哈希部分
@Test
void HashTest()
{
stringRedisTemplate.opsForHash().put("user:test2","name","xxx");
stringRedisTemplate.opsForHash().put("user:test2","age","18");
Map<Object,Object> entries=stringRedisTemplate.opsForHash().entries("user:test2");
}