Generate a new UniqueCounter.
        Useful for exactly counting unique objects

        @param redis_conn: A premade redis connection (overrides host and port)
        @param host: the redis host
        @param port: the redis port
        @param key: the key for your stats collection
        @param cycle_time: how often to check for expiring counts
        @param start_time: the time to start valid collection
        @param window: how long to collect data for in seconds (if rolling)
        @param roll: Roll the window after it expires, to continue collecting
            on a new date based key.
        @keep_max: If rolling the static window, the max number of prior
            windows to keep

def get_unique_counter(self, redis_conn=None, host='localhost', port=6379,
                           key='unique_counter', cycle_time=5, start_time=None,
                           window=SECONDS_1_HOUR, roll=True, keep_max=12):
        '''
        Generate a new UniqueCounter.
        Useful for exactly counting unique objects

        @param redis_conn: A premade redis connection (overrides host and port)
        @param host: the redis host
        @param port: the redis port
        @param key: the key for your stats collection
        @param cycle_time: how often to check for expiring counts
        @param start_time: the time to start valid collection
        @param window: how long to collect data for in seconds (if rolling)
        @param roll: Roll the window after it expires, to continue collecting
            on a new date based key.
        @keep_max: If rolling the static window, the max number of prior
            windows to keep
        '''
        counter = UniqueCounter(key=key, cycle_time=cycle_time,
                                start_time=start_time, window=window,
                                roll=roll, keep_max=keep_max)
        counter.setup(redis_conn=redis_conn, host=host, port=port)
        return counter