diff --git a/doctests/geo_tutorial_test.go b/doctests/geo_tutorial_test.go new file mode 100644 index 000000000..051db623b --- /dev/null +++ b/doctests/geo_tutorial_test.go @@ -0,0 +1,139 @@ +// EXAMPLE: geo_tutorial +// HIDE_START +package example_commands_test + +import ( + "context" + "fmt" + + "github.com/redis/go-redis/v9" +) + +// HIDE_END + +func ExampleClient_geoadd() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "bikes:rentable") + // REMOVE_END + + // STEP_START geoadd + res1, err := rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.27652, + Latitude: 37.805186, + Name: "station:1", + }).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res1) // >>> 1 + + res2, err := rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.2674626, + Latitude: 37.8062344, + Name: "station:2", + }).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res2) // >>> 1 + + res3, err := rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.2469854, + Latitude: 37.8104049, + Name: "station:3", + }).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res3) // >>> 1 + // STEP_END + + // Output: + // 1 + // 1 + // 1 +} + +func ExampleClient_geosearch() { + ctx := context.Background() + + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", // no password docs + DB: 0, // use default DB + }) + + // REMOVE_START + rdb.Del(ctx, "bikes:rentable") + + _, err := rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.27652, + Latitude: 37.805186, + Name: "station:1", + }).Result() + + if err != nil { + panic(err) + } + + _, err = rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.2674626, + Latitude: 37.8062344, + Name: "station:2", + }).Result() + + if err != nil { + panic(err) + } + + _, err = rdb.GeoAdd(ctx, "bikes:rentable", + &redis.GeoLocation{ + Longitude: -122.2469854, + Latitude: 37.8104049, + Name: "station:3", + }).Result() + + if err != nil { + panic(err) + } + // REMOVE_END + + // STEP_START geosearch + res4, err := rdb.GeoSearch(ctx, "bikes:rentable", + &redis.GeoSearchQuery{ + Longitude: -122.27652, + Latitude: 37.805186, + Radius: 5, + RadiusUnit: "km", + }, + ).Result() + + if err != nil { + panic(err) + } + + fmt.Println(res4) // >>> [station:1 station:2 station:3] + // STEP_END + + // Output: + // [station:1 station:2 station:3] +}