Revision history for Redis::CappedCollection module 1.06 Thu Apr 28 2016 CHANGES: - Ability to force re-connection with Redis on error ('reconnect_on_error' attribute). - $DEFAULT_CONNECTION_TIMEOUT, $DEFAULT_OPERATION_TIMEOUT, $DEFAULT_ADVANCE_CLEANUP_NUM constants added. - connection_timeout, operation_timeout attributes added. - Revised error codes. - Better handling of errors when running out of memory. - Arguments control improved. - Added the service module Redis::CappedCollection::Util. - Avoid "cache stampede" effect during advanced memory cleanup. - Attributes 'advance_cleanup_bytes' and 'advance_cleanup_num' renamed to 'min_cleanup_bytes' and 'min_cleanup_items'. - $DEFAULT_ADVANCED_CLEANUP_BYTES, $DEFAULT_ADVANCE_CLEANUP_NUM renamed to $DEFAULT_MIN_CLEANUP_BYTES, $DEFAULT_MIN_CLEANUP_ITEMS . FIXES: - Argument 'redis' may have Redis::CappedCollection type in function collection_info, collection_exists, drop_collection, redis_config_ok, resize calls. - Tests corrected. 1.05 Tue Jan 14 2016 FIXES: - Error on update/upsert without $data_time in some cases (e.g. after pop_oldest). 1.04 Tue Jan 12 2016 CHANGES: - Added 'upsert' method. 1.03 Thu Jan 07 2016 CHANGES: - Works with a Redis server 'maxmemory-policy' setting 'noeviction' only. - Added 'redis_config_ok' method. - $E_REDIS_DID_NOT_RETURN_DATA, $E_UNKNOWN_ERROR errors added. - Updated version of the data structure. FIXES: - Incorrect analysis an error related to not enough memory. 1.02 Thu Sep 03 2015 CHANGES: - Redis::CappedCollection does not close connection to redis server (including '->quit' method) if it was provided by user. - More convenient error codes naming. FIXES: - Fixes of test plans. 1.01 Tue Jul 07 2015 CHANGES: - Updated behaviour of 'older_allowed' attribute that controls adding an element that's older than the last element removed from collection. - Added 'clear_collection' method. FIXES: - Small correction in destruction procedure. - Fixes of documentation and MANIFEST. 1.00 Mon Jun 15 2015 !!! This is a major upgrade that changes API. It's strongly advised to study revised documentation and update your code where necessary !!! !!! Data structures created on the server by previous versions of the module are incompatible with this release. Existing collections must be recreated after updating to this release. !!! CHANGES: - Redis::CappedCollection->new() is deprecated and will be removed in future. Please use either create() or open() instead. - In the parameters of the methods 'redis' may be either a Redis object or a hash reference of parameters to create a Redis object. - Changed the order of the arguments of the 'insert' method. - The list ID and data ID arguments are mandatory for 'insert' method. - Added 'data time' argument for 'update' method. - Method 'info' renamed to 'list_info'. - Method 'exists' renamed to 'list_exists'. - Method 'drop' renamed to 'drop_list'. - Constructor parameter 'big_data_threshold' was removed. - 'last_removed_time' information attribute was removed. - Added constructor argument 'memory_reserve'. - Added 'oldest_time' method. - Use Const::Fast for values exported by the module. - Attributes 'advance_cleanup_bytes' and 'advance_cleanup_num' are stored on the Redis server and can be changed only by 'resize' method. - $MIN_MEMORY_RESERVE, $MAX_MEMORY_RESERVE constants added. - $ENONEXISTENTDATAID, $EINCOMPDATAVERSION errors added. - Redis server version 2.8 or higher is required. - We strongly recommend setting 'maxmemory' option in the redis.conf file. - Added utilities to dump and restore the collection: dump_collection, restore_collection . FIXES: - 'open' method fixed. - Tests fixed. 0.17 Thu Apr 23 2015 CHANGES: - Added 'create', 'open' constructors. - Added 'collection_exists', 'resize' methods. - 'open', 'collection_info', 'collection_exists', 'resize', 'drop_collection' may be used as functions. - Redis::CappedCollection->new() is deprecated and will be removed in future. Please use either create() or open() instead. - The 'quit' method does not close connection to Redis during global destruction phase (Perl version 5.14 and above). 0.16 Tue May 27 2014 CHANGES: - Added argument 'check_maxmemory' to the Redis::CappedCollection->new . 0.13 - 0.15 Wed Apr 02 2014 CHANGES: - Small test improvement. 0.12 Fri Mar 14 2014 CHANGES: - Change the port used for testing. 0.11 Fri Nov 15 2013 CHANGES: - Adjust Redis server connection parameters. (Starting with version 1.963, Redis module doesn't support encoding) 0.10 Fri Oct 25 2013 FIXES: - Fix runtime loading of Test::* 0.09 Fri Sep 27 2013 FIXES: - Tests fine-tuned to the correct execution of 32-bit systems. 0.08 Wed Sep 18 2013 CHANGES: - Use Try::Tiny for proper preservation of $@ . 0.07 Thu Mar 14 2013 CHANGES: - Account for Redis memory overhead when checking collection size: use package variable $REDIS_MEMORY_OVERHEAD to adjust overhead estimate 0.06 Thu Mar 14 2013 CHANGES: - Use Redis maxmemory setting to set 'size' if not provided in constructor 0.05 Fri Mar 08 2013 CHANGES: - The tests are executed even if the installed Redis server is not running 0.04 Fri Mar 08 2013 CHANGES: - Added method 'ping' 0.03 Wed Feb 13 2013 CHANGES: - 'new' indirectly detects no connection to the Redis server 0.02 Tue Dec 18 2012 CHANGES: - Checking Perl version in Makefile.PL 0.01 Wed Oct 17 2012 - Original version