47 lines
1 KiB
Go
47 lines
1 KiB
Go
package stacker
|
||
|
||
import (
|
||
"context"
|
||
|
||
"github.com/redis/go-redis/v9"
|
||
)
|
||
|
||
// Создание подключения к Redis
|
||
func ConnectToRedis(addr string) redis.Client {
|
||
rdb := redis.NewClient(&redis.Options{
|
||
Addr: addr,
|
||
Password: "",
|
||
DB: 0,
|
||
})
|
||
|
||
return *rdb
|
||
}
|
||
|
||
// Создание записи в Redis о том, что этот пост отправлен
|
||
func SetToRedis(rdb redis.Client, key string, val interface{}) error {
|
||
err := rdb.Set(context.Background(), key, val, 0).Err()
|
||
if err != nil {
|
||
return err
|
||
}
|
||
return nil
|
||
}
|
||
|
||
// Проверка есть ли пост в Redis или нет
|
||
func CheckInRedis(rdb redis.Client, key string) (bool, error) {
|
||
_, err := rdb.Get(context.Background(), key).Result()
|
||
if err == redis.Nil {
|
||
return false, nil
|
||
} else if err != nil {
|
||
return false, err
|
||
}
|
||
return true, nil
|
||
}
|
||
|
||
// Сохранение базы данных Redis
|
||
func SaveRedis(rdb redis.Client) error {
|
||
err := rdb.Save(context.Background()).Err()
|
||
if err != nil {
|
||
return err
|
||
}
|
||
return nil
|
||
}
|