GO 将坐标值写入redis
时间: 2023-08-15 12:08:53 浏览: 50
要将坐标值写入 Redis 中,可以使用 `GEOADD` 命令。该命令用于将给定的地理空间位置(经度、纬度、位置名称)添加到指定的键中。
在 Go 语言中,可以使用 Redis 客户端库 `github.com/go-redis/redis/v8` 来执行 Redis 命令。下面是一个将多个位置写入 Redis 的示例代码:
```go
package main
import (
"fmt"
"github.com/go-redis/redis/v8"
)
var rdb *redis.Client
func initClient() (err error) {
rdb = redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "123456",
DB: 0,
})
_, err = rdb.Ping().Result()
return err
}
func main() {
if err := initClient(); err != nil {
fmt.Printf("init redis client failed, err:%v\n", err)
return
}
fmt.Println("connect redis success...")
locations := []*redis.GeoLocation{
{Longitude: 116.404, Latitude: 39.915, Name: "Beijing"},
{Longitude: 121.473, Latitude: 31.230, Name: "Shanghai"},
{Longitude: 113.264, Latitude: 23.129, Name: "Guangzhou"},
}
if err := rdb.GeoAdd("mylocations", locations...).Err(); err != nil {
fmt.Println("GeoAdd error", err)
return
}
fmt.Println("write locations to redis success...")
// 释放相关资源
defer rdb.Close()
}
```
在上述代码中,首先使用 `initClient()` 函数初始化 Redis 客户端对象 `rdb`,然后定义了一个 `locations` 数组,该数组包含了多个地理位置信息。接着,使用 `rdb.GeoAdd()` 方法将这些地理位置信息写入 Redis 中。最后,使用 `defer` 语句释放相关资源。
需要注意的是,`rdb.GeoAdd()` 方法的第一个参数是 Redis 中保存位置信息的键名,后面的参数是多个 `*redis.GeoLocation` 类型的对象,分别代表不同的地理位置信息。在 `*redis.GeoLocation` 类型中,`Longitude` 和 `Latitude` 分别表示经度和纬度,`Name` 表示位置名称。