go~Redis连接问题

img


包里已经安装好Redis库,为什么不能引用?
请求各位大师捞捞呀!!

img

你是Go模块化的项目吧
你的go源码 要放到 src 下面去,然后再去引依赖【注意要去掉 src\】

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7789255
  • 你也可以参考下这篇文章:Redis连接池的介绍与使用
  • 除此之外, 这篇博客: Go:Redis中的 Redis架构和原理剖析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    3. Redis架构介绍

                 A. 单进程单线程处理请求。

                 B. 支持epoll、kqueue等高性能网络模型。

                 C. 支持RDB持久化和AOF持久化。

    5. RDB持久化介绍

                 A. 当redis需要做持久化时,会fork一个子进程

                 B. 子进程会将数据写到磁盘上一个RDB文件上

                 C. 子进程写完之后,会把原来的RDB文件换掉

                 D. 应用到的特性是copy-on-write机制。

    6. AOF持久化机制介绍

                 A. 以日志的追加的形式,记录每个写请求的指令。

                 B. 可以配置磁盘刷新的时间间隔,比如每秒都刷盘

                 C. 如果进程重启或崩溃,会执行日志文件中的指令进行数据恢复。

                 D. 如果日志文件过大,会启动“日志重写” 。Fork一个子进程进行命令压缩。

    7. Redis主从同步

                 A. 防止出现单点故障

                 B. 缓解主节点的读压力,可水平扩展 

                 C. 数据冗余,保证数据库安全性

    8. 主从复制的流程 

                 A. Slave和master建立TCP连接

                 B. Slave向maste发起数据同步请求

                 C. Slave接收master发送过来的同步数据(RDB)

                 D. Slave基于数据构建内存数据库

    8. 主从复制流程图

    9. Redis主从配置

                 A. 编辑redis.conf

    pidfile /var/run/redis1.pid #改变pid的文件名
    port 6380 #改变port端口号
    dir /usr/local/redis1 #改变路径
    slaveof 127.0.0.1 6379 #绑定主的ip和端口

    10. 主从切换 

                 A. 选择一个Slave S1作为master

                 B. 连接slave执行,slaveof NO ONE

                 C.修改其他的Slave的master为S1

                 D. 原来宕掉的master, 修改配置成为S1的从

    11. Redis开发 

                 A. 使用第三方的redis库, github.com/garyburd/redigo/redis

                 B. 连接redis

    package main
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
    }

    12. Redis开发

                 A. Set操作, 设置key-value

    package main
    import (
        "fmt"
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
        defer c.Close()
        _, err = c.Do("Set", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
        r, err := redis.Int(c.Do("Get", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
        fmt.Println(r)
    }
  • 您还可以看一下 程序员学院老师的Redis基础-集群-实战-调优课程中的 Redis能做什么?小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^