Ich habe ein Objekt:erstellen Repository mit redis in SpringBoot App
@Data
@AllArgsConstructor
public class ResultGeoObjectDto {
private String addressLine;
private String location;
private double latitude;
private double longitude;
}
ich einen Dienst erstellt, die mit meinem Objekt arbeiten und 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);
}
}
Dies funktioniert gut , aber viele Beispiele verwenden ein Repository
Muster. Kannst du mir sagen, wie man ein Repository erstellt?
Zum Beispiel here mit einem statischen Schlüssel, und ich habe es dynamisch gebildet. Und ich habe auch eine Liste von Objekten statt einer. Ich kann nicht verstehen, wie ich die richtige Architektur machen muss.
Der Link, den Sie bereits alles abzudecken, teilen. Wenn Sie einen dynamischen Schlüssel benötigen, müssen Sie nur Ihre Repository-Methoden implementieren und das Schlüsselargument mit dem Objekt übernehmen. Übrigens ist der verknüpfte Tutorial-Schlüssel wie ein Tabellenname. Ihr dynamischer Schlüssel entspricht der ID des Schülers im Tutorial und ist natürlich dynamisch. Wenn Sie Ihre Objekte einzeln verwenden, ist das Speichern einer Liste eine schlechte Übung. Aber wenn Ihre Geschäftslogik so ist, ist das Speichern der Liste in Ordnung. Aber wenn ich du wäre, würde ich diese Liste von Objekten in einer höheren Klasse kapseln und die Objekte dieser Klasse speichern. – barbakini