使用Goland操作Redis详解

这篇博客详细介绍了如何使用Goland进行Redis操作,包括String、List、Set和Hash的使用,以及连接池的管理和示例。文章展示了go-redis库的各种操作方法,并提供了一个设置连接池大小的实例,说明了连接池的工作原理。
摘要由CSDN通过智能技术生成

String 操作

redis 的 String 操作有:

set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
mset(key N, value N):批量设置多个string的值
msetnx(key N, value N):如果所有名称为key i的string都不存在
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串

在 go-redis 中, 我们可以直接找到对应的操作方法, 直接上代码:

// String 操作
func stringOperation(client *redis.Client) {
    // 第三个参数是过期时间, 如果是0, 则表示没有过期时间.
    err := client.Set("name", "xys", 0).Err()
    if err != nil {
        panic(err)
    }

    val, err := client.Get("name").Result()
    if err != nil {
        panic(err)
    }
    fmt.Println("name", val)


    // 这里设置过期时间.
    err = client.Set("age", "20", 1 * time.Second).Err()
    if err != nil {
        panic(err)
    }

    client.Incr("age") // 自增
    client.Incr("age") // 自增
    client.Decr("age") // 自减

    val, err = client.Get("age").Result()
    if err != nil {
        panic(err)
    }
    fmt.Println("age", val) // age 的值为21

    // 因为 key "age" 的过期时间是一秒钟, 因此当一秒后, 此 key 会自动被删除了.
    time.Sleep(1 * time.Second)
    val, err = client.Get("age").Result()
    if err != nil {
        // 因为 key "age" 已经过期了, 因此会有一个 redis: nil 的错误.
        fmt.Printf("error: %v\n", err)
    }
    fmt.Println("age", val)
}

list 操作

redis 的 list 操作有:

rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素
ltrim(key, start, end):截取名称为key的list
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值
lrem(key, count, value):删除count个key的list中值为value的元素
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

同样地, 在 go-redis 中也可以找到对应的方法, 下面是一个简单的示例:

// list 操作
func listOperation(client *redis.Client) {
    client.RPush("fruit", "apple
GoLand中配置Redis 2024,你需要安装插件并设置连接信息。以下是简单的步骤: 1. **安装插件**: - 首先,确保你已经安装了GoLand,它通常会内置支持Redis的插件,如`Redigo`。如果你还没有,可以去[GoLand插件市场](https://plugins.jetbrains.com/search?search=redigo)搜索Redigo插件并安装。 2. **添加依赖**: 在项目结构中,打开`go.mod`文件,如果尚未使用,添加`github.com/go-redis/redis/v8`到dependencies里,这将引入Redis操作库。 ```go module your_project_name go 1.17 # or your current Go version require ( github.com/go-redis/redis/v8 v8.9.25 // ...其他已存在的依赖 ) ``` 3. **配置连接**: 使用环境变量或者创建`config.go`等配置文件来管理Redis连接字符串。例如: ```go package config import "os" const ( REDIS_HOST = "localhost" REDIS_PORT = "6379" // 根据实际Redis服务器端口修改 ) var RedisURL string func init() { RedisURL = fmt.Sprintf("redis://%s:%s", REDIS_HOST, REDIS_PORT) os.Setenv("REDIS_URL", RedisURL) } ``` 或者直接从命令行设置环境变量`REDIS_URL`。 4. **使用配置**: 在需要访问Redis的地方,通过`godotenv`等工具读取环境变量,或者使用`os.Getenv("REDIS_URL")`获取连接字符串: ```go import ( "context" "github.com/go-redis/redis/v8" ) func main() { ctx := context.Background() client := redis.NewClient(&redis.Options{ URL: os.Getenv("REDIS_URL"), // 更多配置选项... }) // 现在你可以使用client来进行Redis操作,如Get、Set等 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值