zoukankan      html  css  js  c++  java
  • 第六单元 go操作redis

    第六单元 go操作redis
    
    一、redis介绍
    二、go redis使用
    
    一、redis介绍
    redis是KV结构的NOsql数据库
    redis可以作为缓存使用,减少DB的负载
    redis常用数据类型:
    字符串:主要用于单一的字符串数据存储
    哈希:主要存储对象数据的,比如:点赞,评论,收藏,关注
    列表:主要于消息中间件,比如:解耦,肖峰等
    集合:主要用于共同好友,粉丝
    有序集合:主要用于排行榜
    
    二、go redis使用
    1.go 连接redis
    redis.Dial("tcp", "redis主机地址:端口号") 
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/garyburd/redigo/redis"
    )
    
    func main() {
    	c, err := redis.Dial("tcp", "localhost:6379") //redis连接
    	if err != nil {
    		fmt.Println("conn redis failed,", err)
    		return
    	}
    
    	fmt.Println("redis conn success")
    
    	defer c.Close()
    }
    
    
    2.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()
    	_, err = c.Do("Set", "key", 100)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	r, err := redis.Int(c.Do("Get", "key"))
    	if err != nil {
    		fmt.Println("get abc failed,", err)
    		return
    	}
    
    	fmt.Println(r)
    }
    
    
    3. 字符串批量操作
    
    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("MSet", "var1", 100, "var2", 300, "var3", 400)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	r, err := redis.Ints(c.Do("MGet", "var1", "var2", "var3"))
    	if err != nil {
    		fmt.Println("get abc failed,", err)
    		return
    	}
    
    	for _, v := range r {
    		fmt.Println(v)
    	}
    }
    
    
    4.设置过期时间
    用法:c.Do("expire", key, 秒数)
    c.Do("expire", "var1", 10)
    
    代码示例
    
    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("expire", "var2", 10)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    }
    
    5.LIST操作
    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("lpush", "book_list", "abc", "ceg", 300)
    	// if err != nil {
    	// 	fmt.Println(err)
    	// 	return
    	// }
    
    	r, err := redis.String(c.Do("lpop", "book_list"))
    	if err != nil {
    		fmt.Println("get abc failed,", err)
    		return
    	}
    
    	fmt.Println(r)
    }
    
    
    6.哈希操作
    
    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("HSet", "books", "name", "三国")
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    
    	r, err := redis.String(c.Do("HGet", "books", "name"))
    	if err != nil {
    		fmt.Println("get abc failed,", err)
    		return
    	}
    
    	fmt.Println(r)
    }
    

      

  • 相关阅读:
    一根网线实现双机互联共享文件
    预编译指令与宏定义
    程序的编译链接过程
    windows消息机制(MFC)
    【SpringBoot】SpringBoot Servlet容器(十一)
    【SpringBoot】SpringBoot Servlet三大组件 Servlet、Filter、Listener(十)
    【SpringBoot】SpringBoot 错误处理机制(九)
    【SpringBoot】SpringBoot 国际化(七)
    【SpringBoot】SpringBoot与Thymeleaf模版(六)
    【SpringBoot】SpringBoot与SpringMVC自动配置及静态资源(五)
  • 原文地址:https://www.cnblogs.com/xfsong/p/13388929.html
Copyright © 2011-2022 走看看