As ric355 says Its the number of write cyles that is limited, ie the number of write/erase cycles, however, its the erase operation that wears the memory. A common technique is to allocate a block of memory to one parameter and then continually increment the write addrress, erasing the block only when its full. You can either maintain a pointer to the address, which requires its own management or simply reset a volatile pointer on each start up by reading backwards through the memory to find the first non-blank address, erased addresses contain FFh.
You will need a recovery method in the event of a power down mid-write/erase.