123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- package redismgr
- import (
- "server/conf"
- "time"
- "github.com/gomodule/redigo/redis"
- "github.com/name5566/leaf/log"
- )
- var (
- pool *redis.Pool
- )
- func init() {
- Connect()
- }
- func Connect() {
- pool = &redis.Pool{
- MaxIdle: 256,
- MaxActive: 0,
- IdleTimeout: time.Second * 60,
- Dial: func() (redis.Conn, error) {
- return redis.Dial(
- "tcp",
- conf.RedisDBAddr,
- redis.DialPassword(""),
- redis.DialDatabase(0),
- )
- },
- }
- }
- func Set(key string, value interface{}, expiration ...int) error {
- conn := pool.Get()
- defer conn.Close()
- if len(expiration) > 0 {
- _, err := conn.Do("SETEX", key, expiration[0], value)
- return err
- }
- _, err := conn.Do("SET", key, value)
- return err
- }
- func Get(key string) (string, error) {
- conn := pool.Get()
- defer conn.Close()
- reply, err := redis.String(conn.Do("GET", key))
- if err == redis.ErrNil {
- return "", nil
- }
- return reply, err
- }
- func Delete(key string) error {
- conn := pool.Get()
- defer conn.Close()
- _, err := conn.Do("DEL", key)
- return err
- }
- func Exists(key string) (bool, error) {
- conn := pool.Get()
- defer conn.Close()
- return redis.Bool(conn.Do("EXISTS", key))
- }
- func HashSet(key, field string, value interface{}) error {
- conn := pool.Get()
- defer conn.Close()
- _, err := conn.Do("HSET", key, field, value)
- return err
- }
- func HashGet(key, field string) (string, error) {
- conn := pool.Get()
- defer conn.Close()
- reply, err := redis.String(conn.Do("HGET", key, field))
- if err == redis.ErrNil {
- return "", nil
- }
- return reply, err
- }
- func ListPush(key string, value interface{}) error {
- conn := pool.Get()
- defer conn.Close()
- _, err := conn.Do("LPUSH", key, value)
- return err
- }
- func ListRange(key string, start, stop int) ([]string, error) {
- conn := pool.Get()
- defer conn.Close()
- return redis.Strings(conn.Do("LRANGE", key, start, stop))
- }
- func test() {
-
- err := Set("test_key", "test_value", 60)
- if err != nil {
- log.Debug("Set error:", err)
- }
- value, err := Get("test_key")
- if err != nil {
- log.Debug("Get error:", err)
- }
- log.Debug("Get value:", value)
-
- err = HashSet("user:1001", "name", "player1")
- if err != nil {
- log.Debug("HashSet error:", err)
- }
- name, err := HashGet("user:1001", "name")
- if err != nil {
- log.Debug("HashGet error:", err)
- }
- log.Debug("HashGet name:", name)
-
- err = ListPush("game:list", "game1")
- if err != nil {
- log.Debug("ListPush error:", err)
- }
- games, err := ListRange("game:list", 0, -1)
- if err != nil {
- log.Debug("ListRange error:", err)
- }
- log.Debug("Games:", games)
- }
|