gpt4 book ai didi

spring-boot - 使用 Spring Data Redis 将对象映射到哈希

转载 作者:行者123 更新时间:2023-12-04 03:07:38 25 4
gpt4 key购买 nike

假设我有一个用户类

class User {
private Long id
private String username
private String password
}

我阅读了一些关于在散列中使用 Redis 存储存储库的文章/教程。

但是他们对整个“表”都有一个键,放入redis的内容如下:

user 1 {id:1,username:'',password:''}
user 2 {id:1,username:'',password:''}

在这种情况下,它们都有 id 作为 hash key

我想要实现的是将每个字段用作hash key,如下所示:

user:1 id 1
user:1 username ''
user:1 password ''

经过相当多的时间搜索,我发现 Jackson2HashMapper 可以提供帮助。但是没有关于如何准确使用这个映射器的文章/文档。

有没有人遇到过类似的情况?

最佳答案

我只是这样使用:

@Bean
public HashMapper<Object, byte[], byte[]> hashMapper() {
return new ObjectHashMapper();
}

@Component
public class HashMapping<T> {
@NonNull
private StringRedisTemplate stringRedisTemplate;
@NonNull
private HashMapper<Object, byte[], byte[]> hashMapper;

public void writeHash(String key, T t) {
checkNotNull(key, "hash key cannot be null");
checkNotNull(t, "hash value cannot be null");
stringRedisTemplate.execute((RedisCallback<Void>) connection -> {
Map<byte[], byte[]> mappedHash = hashMapper.toHash(t);
connection.hMSet(key.getBytes(), mappedHash);
return null;
});
}

public T loadHash(String key) {
checkNotNull(key, "hash key cannot be null");
Map<byte[], byte[]> loadedHash =
stringRedisTemplate.getConnectionFactory()
.getConnection().hGetAll(key.getBytes());
return (T) hashMapper.fromHash(loadedHash);
}

}

关于spring-boot - 使用 Spring Data Redis 将对象映射到哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47670024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com