【Spring AI】05. 向量数据库-Redis
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.index.GeoIndexDefinition;
import org.springframework.data.redis.connection.RedisGeoCommands;
import org.springframework.data.redis.connection.RedisConnection;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class RedisGeoExample {
private final RedisTemplate<String, String> redisTemplate;
public RedisGeoExample(RedisTemplate<String, String> redisTemplate) {
this.redisTemplate = redisTemplate;
}
public void addGeoLocation(String key, double longitude, double latitude, String member) {
redisTemplate.opsForGeo().add(key, new Point(longitude, latitude), member);
}
public List<Point> searchGeoLocationsWithinRadius(String key, double longitude, double latitude, double radius) {
return redisTemplate.opsForGeo().findGeoWithin(key, new Point(longitude, latitude), radius);
}
public void expireGeoKey(String key, long timeout, TimeUnit unit) {
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
connection.pExpire(key.getBytes(), unit.toMillis(timeout));
connection.close();
}
}
这个代码示例展示了如何在Spring应用程序中使用RedisTemplate
操作Geo类型的数据。它包括添加地理位置数据、搜索指定范围内的地理位置数据,以及设置Geo key的过期时间。这些操作是在Redis中实现向量数据库功能的基础。
评论已关闭