How to use shift register.

TPIC6B595 is better for sinking current from LEDs. Works just like 74CH595, but does not have the HC's 70mA total current limit.

Here's the short version of a "tutorial"

digitalWrite (RCLKpin, LOW);
SPI.transfer(fontArray[displayData]); // SCK to SRCLK, MOSI to Ser In, SSpin to SRCK, OE low, MRCLR High
digitalWrite (RCLKpin, HIGH);

byte fontArray[] = {
0b00111111, // 0   DP-g-f-e-d-c-b-a
0b00000110, // 1
etc
0b01101111, // 9
};

Segments:
a
f b
g
e c
d DP