苍茫大地一剑尽挽破,何处繁华笙歌落
具体代码在:https://gitee.com/hjx_RuGuoYunZhiDao/strom-huang-go/tree/master/go_redis
go get github.com/go-redis/redis
import (
"fmt"
"github.com/go-redis/redis"
)
// 声明一个全局的redisDb变量
var redisDb *redis.Client
func initRedisClient() (err error) {
redisDb = redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})
_, err = redisDb.Ping().Result()
if err != nil {
return err
}
return nil
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
var key string = "test-key"
var keyValue string = "test"
err = redisDb.Set(key, keyValue, 0).Err()
if err != nil {
panic(err)
}
var value string
value, err = redisDb.Get("test-key").Result()
if err != nil {
panic(err)
}
fmt.Println("key:", value)
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
var key string = "test-key"
var keyValue string = "test"
var oldValue string
oldValue, err = redisDb.GetSet(key, "test").Result()
if err != nil {
panic(err)
}
fmt.Println(oldValue)
//如果key不存在,则设置这个key的值,并设置key的失效时间。如果key存在,则设置不生效
err = redisDb.SetNX(key, "test", 0).Err()
if err != nil {
panic(err)
}
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//批量设置多个key-value值
err = redisDb.MSet("key1", "value1", "key2", "value2").Err()
if err != nil {
panic(err)
}
// MGet函数可以传入任意个key,一次性返回多个值。
// 这里Result返回两个值,第一个值是一个数组,第二个值是错误信息
values, err := redisDb.MGet("key1", "key2", "key3").Result()
if err != nil {
panic(err)
}
fmt.Println(values)
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//Incr()设置一个age测试自增、自减
err = redisDb.Set("number", "0", 0).Err()
if err != nil {
panic(err)
}
redisDb.Incr("number") // 自增
redisDb.IncrBy("number", 10) // 自增 +10
val, err = redisDb.Get("number").Result()
if err != nil {
panic(err)
}
fmt.Println(val)
redisDb.Decr("number") // 自减
redisDb.DecrBy("number", 3) //-3 此时age的值是22
val, err = redisDb.Get("number").Result()
if err != nil {
panic(err)
}
fmt.Println(val)
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//GetRange() : key,start-从那个位置开始截取,endt-从那个位置结束
val, err := redisDb.GetRange("test-key", 0, 4).Result()
if err != nil {
panic(err)
}
fmt.Println(val)
//会在key-value后面增加 '你好'
length, err := redisDb.Append("test-key", "你好").Result()
if err != nil {
panic(err)
}
fmt.Print("当前缓存key的长度", length)
var result string
result, err = redisDb.Get("test-key").Result()
fmt.Print(result)
//获取长度
num, err := redisDb.StrLen("test-key").Result()
if err != nil {
panic(err)
}
fmt.Printf("当前缓存key的长度为: %v\n", num)
//------------------ Del():删除 /Expire:设置过期时间---------------------------------------
var expire bool
expire, err = redisDb.Expire("test-key", 100).Result()
fmt.Print(expire)
var length2 int64
length2, err = redisDb.Del("test-key").Result()
fmt.Print(length2)
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
//------------------ Del():删除 /Expire:设置过期时间---------------------------------------
var expire bool
expire, err = redisDb.Expire("test-key", 100).Result()
fmt.Print(expire)
var length2 int64
length2, err = redisDb.Del("test-key").Result()
fmt.Print(length2)
}
package main
import (
"fmt"
"github.com/go-redis/redis"
)
// 声明一个全局的redisDb变量
var redisDb *redis.Client
func initRedisClient() (err error) {
redisDb = redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
Password: "",
DB: 0,
})
_, err = redisDb.Ping().Result()
if err != nil {
return err
}
return nil
}
func main() {
err := initRedisClient()
if err != nil {
//redis连接错误
panic(err)
}
fmt.Println("Redis连接成功")
// ----------------------------------get/set------------------------
var key string = "test-key"
var keyValue string = "test"
err = redisDb.Set(key, keyValue, 0).Err()
if err != nil {
panic(err)
}
var value string
value, err = redisDb.Get("test-key").Result()
if err != nil {
panic(err)
}
fmt.Println("key:", value)
//------------------getSet / setNx---------------------------------------
var oldValue string
oldValue, err = redisDb.GetSet(key, "test").Result()
if err != nil {
panic(err)
}
fmt.Println(oldValue)
//如果key不存在,则设置这个key的值,并设置key的失效时间。如果key存在,则设置不生效
err = redisDb.SetNX(key, "test", 0).Err()
if err != nil {
panic(err)
}
//------------------MSet / MGet---------------------------------------
//批量设置多个key-value值
err = redisDb.MSet("key1", "value1", "key2", "value2").Err()
if err != nil {
panic(err)
}
// MGet函数可以传入任意个key,一次性返回多个值。
// 这里Result返回两个值,第一个值是一个数组,第二个值是错误信息
values, err := redisDb.MGet("key1", "key2", "key3").Result()
if err != nil {
panic(err)
}
fmt.Println(values)
//------------------GetRange():字符串截取 /Incr():增加+1 / IncrBy():按指定步长增加 /Decr 自减 /DecrBy 指定步数递减---------------------------------------
//GetRange() : key,start-从那个位置开始截取,endt-从那个位置结束
val, err := redisDb.GetRange("test-key", 0, 4).Result()
if err != nil {
panic(err)
}
fmt.Println(val)
///Incr()设置一个age测试自增、自减
err = redisDb.Set("number", "0", 0).Err()
if err != nil {
panic(err)
}
redisDb.Incr("number") // 自增
redisDb.IncrBy("number", 10) // 自增 +10
val, err = redisDb.Get("number").Result()
if err != nil {
panic(err)
}
fmt.Println(val)
redisDb.Decr("number") // 自减
redisDb.DecrBy("number", 3) //-3 此时age的值是22
val, err = redisDb.Get("number").Result()
if err != nil {
panic(err)
}
fmt.Println(val)
//------------------ Append():追加 /StrLen():获取长度---------------------------------------
//会在key-value后面增加 '你好'
length, err := redisDb.Append("test-key", "你好").Result()
if err != nil {
panic(err)
}
fmt.Print("当前缓存key的长度", length)
var result string
result, err = redisDb.Get("test-key").Result()
fmt.Print(result)
num, err := redisDb.StrLen("test-key").Result()
if err != nil {
panic(err)
}
fmt.Printf("当前缓存key的长度为: %v\n", num)
//------------------ Del():删除 /Expire:设置过期时间---------------------------------------
var expire bool
expire, err = redisDb.Expire("test-key", 100).Result()
fmt.Print(expire)
var length2 int64
length2, err = redisDb.Del("test-key").Result()
fmt.Print(length2)
}