go语言之路

go-redis

redis

redis简介

高性能key-value数据库

  • 支持数据的持久化 可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用
  • 支持多种数据结构的存储
  • 支持数据的备份

redis数据类型

  • String
  • Hash
  • List
  • Set
  • zset(有序集合)

string

string 是redis最基本的类型

redis的string可以包含任何数据,最大能存储512MB

Hash

Redis hash 是一个键值

每个 hash 可以存储 $2^{32}-1$ 键值对(40多亿)

List

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

11代表列表元素的个数是11

10代表弹出的元素是10

Set

Redis 的 Set 是 string 类型的无序集合

(集合内的元素唯一性)

Zset(有序集合)

每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复

go使用redis

package main
import (
    "fmt"
    "github.com/go-redis/redis/v7"
    "io/ioutil"
    "log"
)

var client = redis.NewClient(&redis.Options{
    Addr:"127.0.0.1:6379",
    DB:0,
})

func ConnectRedis() {
    pong, err := client.Ping().Result()
    if err != nil {
        log.Fatal(err)
    }
    if pong != "PONG" {
        log.Fatal("连接redis失败")
    } else {
        log.Println("已连接redis服务")
    }
}

func main() {
    ConnectRedis()
    f, _ := ioutil.ReadFile("/home/jay/index.html")
    set("jay", string(f))

    get("jay")
}

func set(key , value string) {
    //redis的string操作
    result, err := client.Set(key, value, 0).Result()
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Set %s %s %v", key, value, result )
}

func get(key string)  {
    result, err := client.Get(key).Result()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(result)
}

linux组合各种工具进行使用

上一篇

rpc远程调用

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫