code: func SaveDeviceGatewayRXInfoSet(p *redis.Pool, rxInfoSet DeviceGatewayRXInfoSet) error {
  	rxInfoSetPB := deviceGatewayRXInfoSetToPB(rxInfoSet)
  	b, err := proto.Marshal(&rxInfoSetPB)
  	if err != nil {
  		return errors.Wrap(err, "protobuf encode error")
  	}
  
  	c := p.Get()
  	defer c.Close()
  	exp := int64(deviceSessionTTL / time.Millisecond)
  	_, err = c.Do("PSETEX", fmt.Sprintf(deviceGatewayRXInfoSetKeyTempl, rxInfoSet.DevEUI), exp, b)
  	if err != nil {
  		return errors.Wrap(err, "psetex error")
  	}
  
  	log.WithFields(log.Fields{
  		"dev_eui": rxInfoSet.DevEUI,
  	}).Info("device gateway rx-info meta-data saved")
  
  	return nil
  }
docs: // SaveDeviceGatewayRXInfoSet saves the given DeviceGatewayRXInfoSet.