es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay ejemplos disponibles en el marco de trabajo Golang Beego para almacenar y recuperar datos de Redis. Aquí está el enfoque general que puede seguir:

    1. Cree una instancia de cliente Redis utilizando el paquete github.com/gomodule/redigo/redis.
    redisClient := &redis.Pool{
        Dial: func() (redis.Conn, error) {
            c, err := redis.Dial("tcp", "localhost:6379")
            if err != nil {
                return nil, err
            }
            return c, nil
        },
        MaxIdle:    10,
        MaxActive:  100,
        IdleTimeout: 60 * time.Second,
        Wait:       true,
    } 
    
    1. Conéctese a la base de datos MySQL utilizando el paquete database/sql y ejecute una consulta para recuperar los datos.
    db, err := sql.Open("mysql", "usuario:contraseña@tcp(127.0.0.1:3306)/base_de_datos")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
    
    rows, err := db.Query("SELECT * FROM nombre_tabla")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()
    
    1. Itere a través de las filas y almacene los datos en Redis utilizando la instancia de cliente creada anteriormente.
    redisConn := redisClient.Get()
    defer redisConn.Close()
    
    for rows.Next() {
        var id int
        var name string
        var value float64
        err := rows.Scan(&id, &name, &value)
        if err != nil {
            log.Fatal(err)
        }
    
        redisConn.Do("HMSET", "datos:"+strconv.Itoa(id), "nombre", name, "valor", value)
    }
    
    1. Para recuperar los datos más tarde, puede utilizar el comando HGETALL de Redis.
    redisConn := redisClient.Get()
    defer redisConn.Close()
    
    data, err := redis.Strings(redisConn.Do("HGETALL", "datos:1"))
    if err != nil {
        log.Fatal(err)
    }
    
    fmt.Printf("%s: %f", data[0], data[1])
    

    Nota: Esto es solo un ejemplo y debe modificar el código en función de sus requisitos específicos. Además, asegúrese de manejar los errores apropiadamente.

Comments are closed.