当前位置 博文首页 > 使用go来操作redis的方法示例

    使用go来操作redis的方法示例

    作者:stpeace 时间:2021-07-06 18:40

    Redis简单介绍

    简介

    关于Redis的讨论,其实在现在的后台开发中已经是个老生常谈的问题,基本上也是后端开发面试的基本考察点。其中 Redis的背景介绍和细节说明在这里就不赘述。不管怎么介绍,核心在于Redis是一个基于内存的key-value的多数据结构存储,并可以提供持久化服务。基于内存的特性决定了Redis天然适合高并发的数据读写缓存优化,同时也带来了内存开销过大的问题。所以在一些特定情景下,Redis是一把无往不利的大杀器,值得深入学习。

    安装redis, 运行如下go代码:

    package main
    import (
      "time"
      "fmt"
      "github.com/go-redis/redis"
    )
    var Client *redis.Client
    func init() {
      Client = redis.NewClient(&redis.Options{
        Addr:     "127.0.0.1:6379",
        PoolSize:   1000,
        ReadTimeout: time.Millisecond * time.Duration(100),
        WriteTimeout: time.Millisecond * time.Duration(100),
        IdleTimeout: time.Second * time.Duration(60),
      })
      _, err := Client.Ping().Result()
      if err != nil {
        panic("init redis error")
      } else {
        fmt.Println("init redis ok")
      }
    }
    func get(key string) (string, bool) {
      r, err := Client.Get(key).Result()
      if err != nil {
        return "", false
      }
      return r, true
    }
    func set(key string, val string, expTime int32) {
      Client.Set(key, val, time.Duration(expTime) * time.Second)
    }
    func main() {
      set("name", "x", 100)
      s, b := get("name")
      fmt.Println(s, b)
    }

    结果:

    init redis ok
    x true

    过期时间是100s,  过期后,get无法获取信息, 返回了nil

    简单, 不多说。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对站长博客的支持。如果你想了解更多相关内容请查看下面相关链接

    jsjbwy
    下一篇:没有了