1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package go_redis
- import (
- "context"
- "encoding/json"
- "eta/eta_mini_api/utils"
- "fmt"
- "time"
- )
- // IsExist 检测redis中存在该key
- func IsExist(key string) (ok bool) {
- result, err := utils.Redis.Exists(context.TODO(), key).Result()
- if err != nil {
- fmt.Println("err:", err)
- return
- }
- if result > 0 {
- ok = true
- }
- return
- }
- // SetNX 给key设置值,并设置过期时间
- func SetNX(key string, val interface{}, timeout time.Duration) (ok bool) {
- result, err := utils.Redis.SetEX(context.TODO(), key, val, timeout).Result()
- if err != nil {
- return false
- }
- if result == "OK" {
- ok = true
- }
- return
- }
- // RedisInt 获取int的值
- func RedisInt(key string) (result int, err error) {
- result, err = utils.Redis.Get(context.TODO(), key).Int()
- return
- }
- // RedisString 获取string的值
- func RedisString(key string) (result string, err error) {
- result, err = utils.Redis.Get(context.TODO(), key).Result()
- return
- }
- // Delete 删除key
- func Delete(key string) (err error) {
- err = utils.Redis.Del(context.TODO(), key).Err()
- return
- }
- // LPush 从列表左侧push数据
- func LPush(key string, val interface{}) (err error) {
- data, _ := json.Marshal(val)
- err = utils.Redis.LPush(context.TODO(), key, data).Err()
- return err
- }
- // BRPop 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
- func BRPop(key string) (data string, err error) {
- result, err := utils.Redis.BRPop(context.TODO(), 1*time.Second, key).Result()
- if err != nil {
- //fmt.Println("err:", err)
- return
- }
- if len(result) == 2 {
- data = result[1]
- } else {
- fmt.Println("result异常:", result)
- }
- return
- }
- // BRPop2Func 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
- func BRPop2Func(key string, callback func([]byte)) {
- result, err := BRPop(key)
- if err != nil {
- //fmt.Println("err:", err)
- return
- }
- resultByte := []byte(result)
- callback(resultByte)
- return
- }
- func Incr(key string) (err error) {
- err = utils.Redis.Incr(context.TODO(), key).Err()
- return
- }
|