123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package cache
- import (
- "encoding/json"
- "github.com/go-redis/redis"
- "iot_manager_service/app/user/dao"
- "iot_manager_service/app/user/model"
- "iot_manager_service/config"
- "time"
- )
- var Redis *redis.Client
- func InitRedis() error {
- cfg := config.Instance()
- addr := cfg.Redis.Host
- Redis = redis.NewClient(&redis.Options{
- Addr: addr,
- DialTimeout: 10 * time.Second,
- ReadTimeout: 30 * time.Second,
- WriteTimeout: 30 * time.Second,
- PoolSize: 10,
- PoolTimeout: 30 * time.Second,
- Password: cfg.Redis.Password,
- DB: 1, //指定 哪个数据库,不然找不到数据
- })
- _, err := Redis.Ping().Result()
- if err != nil {
- return err
- }
- return nil
- }
- const (
- DeviceStateKey = "dev_stat_"
- ONLINE = "online"
- TLast = "tlast"
- DeviceDataKey = "dev_data_"
- TIME = "time"
- )
- // 将当前用户存入到redis中
- func SetToken(uid string, uuid string, user *dao.User) {
- nowuser := model.NowUser{
- uuid,
- *user,
- }
- marshal, _ := json.Marshal(nowuser)
- Redis.Set("login:"+uid, marshal, time.Hour*1)
- }
- // 从redis中取出当前用户
- func GetToken(uid string) (*model.NowUser, error) {
- result, _ := Redis.Get("login:" + uid).Result()
- str := []byte(result)
- nowuser := model.NowUser{}
- err := json.Unmarshal(str, &nowuser)
- return &nowuser, err
- }
- // 将当前用户从redis中删除(退出登录)
- func DeleteToken(uid string) error {
- return Redis.Del("login:" + uid).Err()
- }
|