[js go]go操作redis

mb6013c048b8fe2 · · 565 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

使用docker安装redis

搜索redis镜像

$ docker search redis复制代码

拉取最新镜像

$ docker pull redis:latest复制代码

查看本地镜像

$ docker images复制代码

运行redis容器, 默认使用6379端口

$ docker run -itd --name redis-test -p 6379:6379 redis复制代码

查看容器运行消息

$ docker ps复制代码

测试使用redis

$ docker exec -it redis-test /bin/bash
$ redis-cli复制代码

设置一个10秒后过期的key

添加安全组并使用AnotherRedisDesktopManager远程访问redis

使用go操作redis

安装go-redis

$ go get -u github.com/go-redis/redis复制代码

建立连接

	rdb := redis.NewClient(&redis.Options{
		Addr:     "server:6379",
		Password: "",  // no password set
		DB:       0,   // use default DB
		PoolSize: 100, // 连接池大小
	})

	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)	defer cancel()

	_, err := rdb.Ping(ctx).Result()	if err != nil {
		fmt.Printf("connect err %v \n", err)
	} else {
		fmt.Printf("rdb %#v", rdb) // rdb &redis.Client{...}
	}复制代码

set和get

	err = rdb.Set(ctx, "dev_bro_age", "35", 0).Err()	if err != nil {		panic(nil)
	} else {
		val, err := rdb.Get(ctx, "dev_bro_age").Result()		if err!= nil {			panic(err)
		} else {
			fmt.Printf("dev_bro_age: %s \n", val) // dev_bro_age: 35 
		}
	}复制代码

zset添加

	zsetKey := "age_rank"
	devbros := []*redis.Z{
		&redis.Z{Score: 25, Member: "devbro0"},
		&redis.Z{Score: 35, Member: "devbro1"},
		&redis.Z{Score: 45, Member: "devbro2"},
	}
	num, err := rdb.ZAdd(ctx, zsetKey, devbros...).Result()	if err != nil {		panic(err)
	} else {
		fmt.Printf("add %d success", num) // add 3 success
	}复制代码

zset修改

	newScore, err := rdb.ZIncrBy(ctx, zsetKey, 10, "devbro0").Result()	if err != nil {		panic(err)
	} else {
		fmt.Printf("devbro0's new age is %v", newScore) // devbro0's new age is 35
	}复制代码

zset查询

	ret, err := rdb.ZRevRangeWithScores(ctx, zsetKey, 0, 0).Result() // 取age最大的那个if err != nil {
		fmt.Printf("zrevrange failed, err:%v\n", err)		return
	} else {		for _, z := range ret {
			fmt.Println(z.Member, z.Score) // devbro2 45
		}
	}复制代码

有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:mb6013c048b8fe2

查看原文:[js go]go操作redis

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

565 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传