def get(self, now):
with self.lock:<EOL><INDENT>items = self.db.zrangebyscore(self.key, <NUM_LIT:0>, now - self.min_age,<EOL>start=<NUM_LIT:0>, num=<NUM_LIT:1>)<EOL>if not items:<EOL><INDENT>return None<EOL><DEDENT>item = items[<NUM_LIT:0>]<EOL>self.db.zrem(item)<EOL>return item<EOL><DEDENT>
Get a bucket key to compact.  If none are available, returns
None.  This uses a configured lock to ensure that the bucket
key is popped off the sorted set in an atomic fashion.

:param now: The current time, as a float.  Used to ensure the
            bucket key has been aged sufficiently to be
            quiescent.

:returns: A bucket key ready for compaction, or None if no
          bucket keys are available or none have aged
          sufficiently.