gpt4 book ai didi

go - 如何使用redis georadius命令golang

转载 作者:可可西里 更新时间:2023-11-01 11:33:26 28 4
gpt4 key购买 nike

我正在使用 Go 语言进行开发并且对它非常陌生。我想使用 redis GEORADIUS 命令并取回包括距离在内的结果。

我现在已经使用了两个包 radix.v2 和 redigo 来尝试获得结果,但并不愉快。我使用 SET 和 GET 等简单命令没有问题。

任何帮助将不胜感激。

编辑:添加代码:-)

package main

import (
"fmt"
"github.com/mediocregopher/radix.v2/redis"
//"reflect"
"encoding/json"
)

var (
client *redis.Client
)

type Facility struct {
Id string
Dist string
}

func main() {
client, err := redis.Dial("tcp", "192.168.99.100:6379")
if err != nil {
// handle err
}

surname, err := client.Cmd("GET", "surname").Str()
if err != nil {
// handle err
}

fmt.Println(surname)

reply, _ := client.Cmd("GEORADIUS", "venues", 50, 0, 25, "mi", "WITHDIST", "ASC").Array()
if err != nil {
fmt.Println(err)
}

//fmt.Println(reflect.TypeOf(reply))
//fmt.Println(reply)

var facilities []Facility

for _, results := range reply {
facility, _ := results.Array()

id, _ := facility[0].Str()
dist, _ := facility[1].Str()

facilities = append(facilities, Facility{
Id: id,
Dist: dist,
})
}

//fmt.Println(facilities)

resp, _ := json.Marshal(facilities)
fmt.Fprintf(w, string(resp))
}

干杯斯蒂芬

最佳答案

可以看redis包里的代码

文件 commands.go 具有所有签名

下面是几个签名

GeoAdd(key string, geoLocation ...*GeoLocation) *IntCmdGeoPos(key string, members ...string) *GeoPosCmdGeoRadius(key string, longitude, latitude float64, query *GeoRadiusQuery) GeoRadiusByMember(key, member string, query *GeoRadiusQuery)GeoDist(key string, member1, member2, unit string) *FloatCmd

关于go - 如何使用redis georadius命令golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38504448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com