Memento design pattern is used for restoring objects to previous state, like undo. But we can do undo and redo multiple times. I have read articles multiple times but still
To answer your first question, you can use memento to redo by making a second memento instance to store the "state" of the redo. However, depending how complicated the object's state is to be stored, it is often "cheaper" to use the Command Pattern to provide undo/redo functionality. The Command can be use to store only the changes to undo/redo while memento probably needs to store the entire state.
tallseth's answer is also correct that the "state" from the State Pattern is not the same "state" that memento stores.