Redis 连接

概述

本章节主要介绍创建单节点的 redis 实例。

准备条件

  1. 完成 golang 安装
  2. 自行准备一个 redis server,我们以 127.0.0.1:6379 为例。

redis 配置说明

RedisConf 相关介绍。

  1. RedisConf struct {
  2. Host string
  3. Type string `json:",default=node,options=node|cluster"`
  4. Pass string `json:",optional"`
  5. Tls bool `json:",optional"`
  6. }
  7. Host: redis 服务地址 ip:port, 如果是 redis cluster 则为 ip1:port1,ip2:port2,ip3:port3...(暂不支持redis sentinel)
  8. Type: node 单节点 rediscluster redis 集群
  9. Pass: 密码
  10. Tls: 是否开启tls

初始化 redis 配置, 当然我们推荐使用 conf.MustLoad 进行配置的加载,可参考配置文件

  1. conf := redis.RedisConf{
  2. Host: "127.0.0.1:6379",
  3. Type: "node",
  4. Pass: "123456",
  5. Tls: false,
  6. }

创建 redis 实例

使用 MustNewRedis 创建一个redis 链接。

  1. conf := redis.RedisConf{
  2. Host: "127.0.0.1:6379",
  3. Type: "node",
  4. Pass: "123456",
  5. Tls: false,
  6. }
  7. rds := redis.MustNewRedis(conf)

这样我们就完成了 rds 的实例创建。

redis 使用

字符串值 value 关联到 key, 并从 redis 取出对应的值。

  1. ctx := context.Background()
  2. err := rds.SetCtx(ctx, "key", "hello world")
  3. if err != nil {
  4. logc.Error(ctx, err)
  5. }
  6. v, err := rds.GetCtx(ctx, "key")
  7. if err != nil {
  8. logc.Error(ctx, err)
  9. }
  10. fmt.Println(v)

完整的实例如下

  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "time"
  6. "github.com/zeromicro/go-zero/core/logc"
  7. "github.com/zeromicro/go-zero/core/stores/redis"
  8. )
  9. func main() {
  10. conf := redis.RedisConf{
  11. Host: "127.0.0.1:6379",
  12. Type: "node",
  13. Pass: "",
  14. Tls: false,
  15. NonBlock: false,
  16. PingTimeout: time.Second,
  17. }
  18. rds := redis.MustNewRedis(conf)
  19. ctx := context.Background()
  20. err := rds.SetCtx(ctx, "key", "hello world")
  21. if err != nil {
  22. logc.Error(ctx, err)
  23. }
  24. v, err := rds.GetCtx(ctx, "key")
  25. if err != nil {
  26. logc.Error(ctx, err)
  27. }
  28. fmt.Println(v)
  29. }