Redigo: Где базовый пример?

Созданный на 3 апр. 2020  ·  7Комментарии  ·  Источник: gomodule/redigo

Я что-нибудь упускаю? Я не могу найти пример базилика, просто подключите и установите значение, а затем получите то же значение. Без пула или кластера. Не могу понять даже, как подключиться к БД.

Я знаю, что для профессионалов в Голанге это все очевидно, но я первый разработчик на Go, и не все очевидно, и мне нужны примеры.

Все 7 Комментарий

Примеры в godoc хорошо это объясняют.
https://godoc.org/github.com/gomodule/redigo/redis#pkg -examples

Вот как установить новое соединение:
https://godoc.org/github.com/gomodule/redigo/redis#example -Dial

И этот фрагмент показывает, как сначала написать, а затем прочитать строку:
https://godoc.org/github.com/gomodule/redigo/redis#example -String

Спасибо. Я хочу получить строки списка с ключами p_1:*

Вот мой код

       conn, err := redis.DialURL("redis://172.17.0.1:6379")
    defer conn.Close()

    if err != nil {
        panic(err.Error())
    }

    res, err := conn.Do("KEYS", "p_1:*")

    if err != nil {
        panic(err.Error())
    }

    res, err = redis.Values(conn.Do("MGET", res))
    if err != nil {
        panic(err.Error())
    }

    fmt.Println(res)

res есть что-то похожее на массив байтов, когда я получаю ключи. Но я не могу получить эти ключи и значения.

Посмотрите документы, на которые я ссылался в своей предыдущей публикации, при чтении строки с помощью «GET» вы должны использовать функцию преобразования redis.String() для преобразования результата байтов в строку Golang.

Во-первых, позвольте мне сказать, как я благодарен за ваше время.

Я просмотрел документы, но не могу их понять. Когда я получаю ключи, у меня есть результат. Но когда я MGET, у меня есть nil

Я не использую GET. Я использую KEYS, и это должно возвращать массив, поэтому, возможно, мне нужно преобразовать KEYS во что-то еще.

Не могли бы вы взглянуть на мой код и сказать, чего не хватает?

Ты хочешь:

    keys, err := redis.Strings(conn.Do("KEYS", "p_1:*"))
    if err != nil {
        panic(err.Error())
    }

    for _, k := range keys {
        fmt.Println(k)
    }

@stevenh, да, ш может. ш может список ключей. Я не могу преобразовать этот список в соответствующий формат для использования MGET

преобразование не требуется, просто передайте результат, используя вариативное расширение, например

vals, err := redis.Values(conn.Do("HGET", keys...))
Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

lovegnep picture lovegnep  ·  18Комментарии

jney picture jney  ·  17Комментарии

lukasmalkmus picture lukasmalkmus  ·  18Комментарии

garyburd picture garyburd  ·  23Комментарии

samwhitecoull picture samwhitecoull  ·  3Комментарии