Files
2026-05-20 16:13:58 +08:00

94 lines
1.8 KiB
Go

package redis
import (
"errors"
"time"
goredis "github.com/go-redis/redis"
)
func (m *Manager) Get(key string) (*string, error) {
if key == "" {
return nil, errors.New("key is empty")
}
data, err := m.Client().Get(key).Result()
if err != nil {
if err == goredis.Nil {
return nil, nil
}
return nil, err
} else {
return &data, nil
}
}
func (m *Manager) Set(key string, value interface{}, expire time.Duration) error {
if err := m.Client().Set(key, value, expire).Err(); err != nil {
return err
}
return nil
}
func (m *Manager) Del(keys ...string) error {
if err := m.Client().Del(keys...).Err(); err != nil {
return err
}
return nil
}
func (m *Manager) GetBytes(key string) ([]byte, error) {
cmd := m.Client().Get(key)
if err := cmd.Err(); err != nil {
return []byte{}, err
}
return cmd.Bytes()
}
func (m *Manager) SAdd(key string, members ...interface{}) error {
if err := m.Client().SAdd(key, members...).Err(); err != nil {
return err
}
return nil
}
func (m *Manager) Exists(keys ...string) (bool, error) {
cmd := m.Client().Exists(keys...)
if err := cmd.Err(); err != nil {
return false, err
}
return cmd.Val() > 0, nil
}
func (m *Manager) Expire(key string, expire time.Duration) error {
if err := m.Client().Expire(key, expire).Err(); err != nil {
return err
}
return nil
}
func (m *Manager) Keys(pattern string) ([]string, error) {
list := m.Client().Keys(pattern)
if err := list.Err(); err != nil {
return []string{}, err
}
return list.Val(), nil
}
func (m *Manager) Incr(pattern string) (int64, error) {
val, err := m.Client().Incr(pattern).Result()
if err != nil {
return 0, err
}
return val, nil
}
//获取key的剩余生存时间
func (m *Manager) TTL(pattern string) time.Duration {
durCmd := m.Client().TTL(pattern)
if durCmd != nil {
return durCmd.Val()
}
return 0
}