func ExampleCache_SetAdapter() {
var (
err error
ctx = gctx.New()
cache = gcache.New()
redisConfig = &gredis.Config{
Address: "127.0.0.1:6379",
Db: 9,
}
cacheKey = `key`
cacheValue = `value`
)
// Create redis client object.
redis, err := gredis.New(redisConfig)
if err != nil {
panic(err)
}
// Create redis cache adapter and set it to cache object.
cache.SetAdapter(gcache.NewAdapterRedis(redis))
// Set and Get using cache object.
err = cache.Set(ctx, cacheKey, cacheValue, time.Second)
if err != nil {
panic(err)
}
fmt.Println(cache.MustGet(ctx, cacheKey).String())
// Get using redis client.
fmt.Println(redis.MustDo(ctx, "GET", cacheKey).String())
// Output:
// value
// value
}
9 Comments
杨佳佳
如果使用redis哨兵模式的话,应该怎么配置
杨佳佳
goframe使用redis缓存时,能支持哨兵模式吗
郭强
底层使用的是
go-redis
组件,该组件是支持哨兵模式的,具体请参考下go-redis
的说明,特别是配置:https://github.com/go-redis/redis云天河
大佬 v1.16.8 后面会支持基于redis的缓存么~
朱华 Hunk
这个是不是不支持redis集群?
郭强
如果设置的
Adapter
是Redis
集群那就支持集群,框架社区包redis
的实现是支持Redis
集群的。孤烟
用示例报 redis adapter is not set, missing configuration or adapter register? possible reference: https://github.com/gogf/gf/tree/master/contrib/nosql/redis
1). github.com/gogf/gf/v2/database/gredis.New
版本是:GoFrame CLI Tool v2.5.1, https://goframe.org
GoFrame Version: v2.5.1 in current go.mod
Biff
遇到同样的报错,我的解决方法是:在报错的包内添加引用redis( _ "github.com/gogf/gf/contrib/nosql/redis/v2" ),就这样解决了,也不知道是什么原因,main包中明明引用了一遍。望大佬解释一下😂
郭强
应该是
go 1.21
的缘故,从这个版本开始import
初始化顺序变了。