All Versions
Latest Version
Avg Release Cycle
49 days
Latest Release
2342 days ago

Changelog History
Page 1

  • v2.2.0 Changes

    January 14, 2018
    • โž• Added: Cache#clear now supports async, available on Redis 4.0+
    • โž• Added: Documentation for serializers and expanders
    • ๐Ÿ›  Fixed: Preserve existing expiration value when incrementing or decrementing keys. There is also additional documentation about the non-atomicity of the increment and decrement methods. See readthis#59 for discussion.
    • ๐Ÿ›  Fixed: Uniformly force key encodings to binary. Not all methods forced encoding of the key, which would cause incomatible encoding errors.
    • ๐Ÿ”„ Changed: Automatically duplicate frozen strings when expanding keys.
  • v2.1.0 Changes

    October 07, 2017
    • ๐Ÿ”„ Changed: Allow any redis client version between 3.0 and 5.0
  • v2.0.2 Changes

    December 12, 2016
    • ๐Ÿ›  Fixed: Properly handle writing when the key and value are both UTF-8. Setting both the key and value to UTF-8 strings caused differing encodings to be sent to Redis. The key was UTF-8 but the value would be ASCII-8BIT, because it was compressed and then packed as 8bit integers. The workaround is to force the encoding of both strings to binary, something that will always be compatible.

    This makes Readthis actually usable with Non-English keys.

  • v2.0.1 Changes

    July 27, 2016
    • ๐Ÿ›  Fixed: The 2.0.0 release had a typo that rendered it useless.
  • v2.0.0 Changes

    July 27, 2016
    • ๐Ÿ’ฅ Breaking: nil values are now rejected from read_multi output by default. Previously nil values were always preserved when fetching with read_multi. This differed from the ActiveSupport::Cache base behaviour and caused bugs in Rails 5.0. More details can be seen at readthis#39.

    The old fetching behaviour, with nil intact, can be achieved by passing the retain_nils flag:

    cache.read_multi('a', 'b', retain_nils: true)

    This can also be set as a global option to retain backward compatibility:

    config.cache_store = :readthis_store, { retain_nils: true }
  • v1.5.0 Changes

    July 18, 2016
    • โž• Added: Cache#delete_matched has been added in a resource efficient way that avoids using the "evil" KEYS command.
  • v1.4.1 Changes

    July 05, 2016
    • ๐Ÿ›  Fixed: Require lua files relative to the Script file itself. This fixes loading scripts from Rails or other applications.
  • v1.4.0 Changes

    July 04, 2016
    • โž• Added: Readthis::Script, for dynamically loading and executing lua scripts.
    • โž• Added: Use custom mexpire to boost refresh performance with multiple keys. It is still slower than raw read performance, but much faster than naive multi expire (~1.5x faster).
    • ๐Ÿ“š Changed: Generally tighten inline documentation.
    • ๐Ÿ›  Fixed: Duplicate objects during dump operation when using the passthrough. When using fetch the original value was returned, including any encoding information that was prepended. From readthis#44 by @kagux
    • ๐Ÿ›  Fixed: Only account for 3 bits when detecting serialized values, which fixes detection with 4 or more serializers configured. From readthis#45 by @kagux.
    • ๐Ÿ›  Fixed: The max serializer guard would allow up to 8 serializers, which wasn't caught by an improper spec. From readthis#46 by @epilgrim.
  • v1.3.0 Changes

    June 08, 2016
    • โž• Added: Key expiration refreshing on read. When refresh: true is set as an instance or method option all read operations will refresh the expiration.
    • ๐Ÿ›  Fixed: Convert float expires_in values to the nearest valid integer. Typically any value less than 1 was rounded down to 0, which is an invalid expiration. Now a value of 0.1 will be rounded up to 1, the lowest possible expiration.
  • v1.2.1 Changes

    April 06, 2016
    • ๐Ÿ›  Fixed: Splat arguments passed to mget within Readthis::Cache#read_multi. From readthis#34 submitted by @kyohei-shimada.