1. A method for paging memory used for one or more queues, including: providing a recycle list data structure that identifies memory pages on a recycle list including at least some memory pages that store portions of the queues, and that represents an order in which the identified memory pages are to be reused; maintaining the recycle list data structure according to a history of access to a memory page that stores a portion of one of the queues, whereby a position of the memory page in the order depends on a transition of sequential access off of the memory page; providing a free list data structure that identifies memory pages on a free list that are unallocated; providing a volatile memory store; providing a non-volatile memory store; and reusing a first memory page identified by the recycle list in response to the free list being empty after writing the contents of the first memory page from the volatile memory store to the non-volatile memory store.