RAS*_*RAS 1 java spring repository-pattern redis spring-boot
我有一个对象:
@Data
@AllArgsConstructor
public class ResultGeoObjectDto {
private String addressLine;
private String location;
private double latitude;
private double longitude;
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个服务,它与我的对象和Redis:
@Service
public class RedisService {
private final RedisTemplate<String, List<ResultGeoObjectDto>> redisTemplate;
@Autowired
public RedisService(RedisTemplate<String, List<ResultGeoObjectDto>> redisTemplate) {
this.redisTemplate = redisTemplate;
}
public void setValue(String key, List<ResultGeoObjectDto> value) {
redisTemplate.opsForList().leftPush(key, value);
}
public List<ResultGeoObjectDto> getGeoObjectByKey(String key) {
return redisTemplate.opsForList().range(key, -1, -1).get(0);
}
public boolean objectExistInRedisStore(String key) {
return redisTemplate.hasKey(key);
}
Run Code Online (Sandbox Code Playgroud)
}
这很好用,但许多示例使用Repository模式。你能告诉我如何制作存储库吗?
例如这里使用静态键,我动态地形成了它。而且我还有一个对象列表,而不是一个。我无法理解我需要如何做正确的架构。
使用 Redis Repository 非常简单,而且比使用 RedisTemplate 持久化数据要好得多。
这是示例:
注释实体
@RedisHash("persons")
public class Person {
@Id String id;
String firstname;
String lastname;
Address address;
}
Run Code Online (Sandbox Code Playgroud)创建Redis Repository接口
public interface PersonRepository extends CrudRepository<Person, String> {}
Run Code Online (Sandbox Code Playgroud)配置
@Configuration
@EnableRedisRepositories
public class ApplicationConfig {
@Bean
public RedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<?, ?> redisTemplate() {
RedisTemplate<byte[], byte[]> template = new RedisTemplate<byte[], byte[]>();
return template;
}
}
Run Code Online (Sandbox Code Playgroud)调用 CRUD 操作。
@Autowired PersonRepository repo;
public void basicCrudOperations() {
Person rand = new Person("rand", "al'thor");
rand.setAddress(new Address("emond's field", "andor"));
repo.save(rand); ?
repo.findOne(rand.getId()); ?
repo.count(); ?
repo.delete(rand); ?
}
Run Code Online (Sandbox Code Playgroud)参考:https : //docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.repositories
| 归档时间: |
|
| 查看次数: |
4684 次 |
| 最近记录: |