Bleach lasts about a year unopened, and about a month once it’s opened. Pool shock lasts far longer in storage.

I do keep a bottle or two of plain bleach (from Costco) around so that I don’t have to make some from pool shock.