Using millis() instead of delay()

To use mllis() for timing instead of delay() you need to restructure your program to keep loop() running freely

An example

unsigned long currentTime;
unsigned long startTime;
unsigned long period = 1000;
byte count = 0;

void setup()
{
  Serial.begin(115200);
  while (!Serial);
}

void loop()
{
  currentTime = millis();
  if (currentTime - startTime >= period)
  {
    Serial.println(count);
    startTime = currentTime;
    count++;
    if (count >= 10)
    {
      count = 0;
    }
  }
}

Of course, instead of printing you could do almost anything. If you want more than one pattern then when you have finished the current one change to another one by having the action controlled by a variable

Take a look at Using millis() for timing. A beginners guide, Several things at the same time and the BlinkWithoutDelay example in the IDE