Go语言连接Redis

当使用Go语言连接Redis时,github.com/go-redis/redis库提供了丰富的方法和命令,以满足各种Redis操作的需求。以下是一些常用的方法和命令的示例:

package main

import (
	"fmt"
	"time"

	"github.com/go-redis/redis"
)

func main() {
	// 创建Redis客户端
	client := redis.NewClient(&redis.Options{
		Addr:     "localhost:6379", // Redis服务器地址和端口
		Password: "",               // Redis密码(如果有的话)
		DB:       0,                // Redis数据库索引
	})

	// 测试连接
	pong, err := client.Ping().Result()
	fmt.Println(pong, err)

	// 设置键值对,并设置过期时间
	err = client.Set("mykey", "myvalue", 5*time.Minute).Err()
	if err != nil {
		fmt.Println(err)
	}

	// 获取键对应的值
	value, err := client.Get("mykey").Result()
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("mykey:", value)
	}

	// 判断键是否存在
	exists, err := client.Exists("mykey").Result()
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("mykey exists:", exists)
	}

	// 自增
	newValue, err := client.Incr("counter").Result()
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("Counter:", newValue)
	}

	// 批量设置键值对
	err = client.MSet("key1", "value1", "key2", "value2").Err()
	if err != nil {
		fmt.Println(err)
	}

	// 批量获取键对应的值
	values, err := client.MGet("key1", "key2").Result()
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("Values:")
		for i, v := range values {
			fmt.Printf("key%d: %v\n", i+1, v)
		}
	}

	// 使用管道(Pipeline)批量执行命令
	pipe := client.Pipeline()
	incr := pipe.Incr("pipeline_counter")
	pipe.Expire("pipeline_counter", 5*time.Minute)
	_, err = pipe.Exec()
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Println("Pipeline Counter:", incr.Val())
	}

	// 关闭连接
	err = client.Close()
	if err != nil {
		fmt.Println(err)
	}
}

上面的示例展示了更多方法和命令的使用。其中包括设置过期时间、判断键是否存在、自增操作、批量设置和获取键值对,以及使用管道进行批量执行命令等。你可以根据自己的需求选择适合的方法和命令来操作Redis数据库。记得根据你的实际情况修改Addr字段以匹配你的Redis服务器地址和端口,以及设置密码(如果有的话)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值