redis - skynocover/Wiki-for-GoLang GitHub Wiki
Redis
"github.com/go-redis/redis"
get set
Rdb = redis.NewClient(&redis.Options{
Addr: fmt.Sprintf("%s:%s", globals.Config.Redis[globals.Env].Host, globals.Config.Redis[globals.Env].Port),
Password: "", // no password set
DB: 0, // use default DB
})
// Set
var contex = context.Background(
Rdb.Set(contex, key, value, 0).Err()
// Get value of key
var get, _ = database.Rdb.Get(contex, key).Result()
// Get keys
val, err := database.Rdb.Keys(contex, find).Result()
if err != nil {
log.Println("redis get fail", err)
}
pub & sub
pub
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "192.168.99.95:6379",
Password: "",
DB: 0,
})
n, err := client.Publish("cha", "hello").Result()
if err != nil {
fmt.Printf(err.Error())
return
}
fmt.Printf("%d clients received the message\n", n)
}
sub
package main
import (
"fmt"
"github.com/go-redis/redis"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "192.168.99.95:6379",
Password: "",
DB: 0,
})
// pubsub := client.Subscribe("chat") //指定
// defer pubsub.Close()
// for msg := range pubsub.Channel() {
// fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
// }
pubsub := client.PSubscribe("*char*") //不定
defer pubsub.Close()
for msg := range pubsub.Channel() {
fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
}
}