Skip to content

Release Notes

v2.26.1

πŸ› Bug Fixes

  • Minor fix: using typing_extensions instead of typing for python 3.7 support #341/#343

v2.26.0

πŸš€ Features

  • Support for server-type specific commands #340
  • Support for Dragonfly SADDEX command #340

πŸ› Bug Fixes

  • Fix bug in bitpos function for the clear bit mode @Diskein #337

v2.25.1

πŸ› Bug Fixes

  • Fix missing default values for version/server_type in FakeBaseConnectionMixin #334

v2.25.0

πŸš€ Features

  • Implement support for hash expiration related commands @j00bar #328
    • HEXPIRE, HEXPIREAT, HEXPIRETIME, HPERSIST, HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HPTTL, HTTL,
  • Implement support for SORT_RO #325, EXPIRETIME #323, and PEXPIRETIME #324
  • Support for creating a tcp server listening to multiple clients
  • Testing against valkey 8.0 #333
  • Improve documentation #332

πŸ› Bug Fixes

  • Replace typing_extensions dependency with typing-extensions #330

v2.24.1

πŸ› Bug Fixes

  • Fix license file added to site-packages #320

v2.24.0

πŸš€ Features

  • Support for TIME SERIES commands (no support for align arguments on some commands) #310

πŸ› Bug Fixes

🧰 Maintenance

  • Update all dependencies, particularly pytest to v8
  • Add tests against Dragonfly server #318
  • Implement decocator unsupported_server_types to enable excluding tests from running against certain server types #318

v2.23.5

πŸ› Bug Fixes

  • fix:issue with async connection and blocking operations writing responses twice to socket #316

v2.23.4

πŸ› Bug Fixes

  • fix:move random seed to HeavyKeeper to avoid issues #315

🧰 Maintenance

  • Documented how to use fakeredis with FastAPI. @ sjjessop #292
  • Using black for linting python code.

v2.23.3

🧰 Maintenance

  • docs: Full code for FastAPI integration (#312)

πŸ› Bug Fixes

  • Fix ttl for empty stream #313

v2.23.2

πŸ› Bug Fixes

  • Fix reading multiple streams with blocking #309

v2.23.1

πŸ› Bug Fixes

  • Fix XREAD behavior when COUNT is not provided but BLOCKING is provided #308

v2.23.0

πŸš€ Features

  • Support for TDigest commands: TDIGEST.ADD,TDIGEST.BYRANK,TDIGEST.BYREVRANK,TDIGEST.CDF, TDIGEST.CREATE, TDIGEST.INFO, TDIGEST.MAX, TDIGEST.MERGE, TDIGEST.MIN, TDIGEST.QUANTILE, TDIGEST.RANK, TDIGEST.RESET, TDIGEST.REVRANK, TDIGEST.TRIMMED_MEAN.

πŸ› Bug Fixes

  • Import Self from typing vs. typing_extension

🧰 Maintenance

  • Update dependencies
  • Add redis-py 5.0.4 to tests
  • Update lupa version constraint #306 @noamkush

v2.22.0

πŸš€ Features

  • Support for setting LUA version from environment variable FAKEREDIS_LUA_VERSION #287
  • Support for loading LUA binary modules in fakeredis #304

πŸ› Bug Fixes

  • Fix the type hint for the version parameter in the async client #302
  • Using LUA 5.1 like real redis #287
  • fix: FakeRedisMixin.from_url() return type is really Self. @ben-xo #305

v2.21.3

πŸ› Bug Fixes

  • Revert behavior of defaulting to share the same server data structure between connections @howamith #303
  • Fix type hint for version #302

v2.21.2

Note: Since connection params are defaulted to be the same between async and sync connections, different FakeRedis connections with the same connection params (or without connection parameters) will share the same server data structure.

πŸ› Bug Fixes

  • Connection params are defaulted to be the same between async and sync connections #297
  • xinfo_stream raises exception when stream does not exist #296

v2.21.1

πŸ› Bug Fixes

  • Support for float timeout values #289

🧰 Maintenance

  • Fix django cache documentation #286

v2.21.0

πŸš€ Features

  • Implement all TOP-K commands (TOPK.INFO, TOPK.LIST, TOPK.RESERVE, TOPK.ADD, TOPK.COUNT, TOPK.QUERY, TOPK.INCRBY) #278
  • Implement all cuckoo filter commands #276
  • Implement all Count-Min Sketch commands #277

πŸ› Bug Fixes

  • Fix XREAD blocking bug #274 #275
  • EXAT option does not work #279

🧰 Maintenance

  • Support for redis-py 5.1.0b3
  • Improve @testtools.run_test_if_redispy_ver
  • Refactor bloom filter commands implementation to use pyprobables instead of pybloom_live

v2.20.1

πŸ› Bug Fixes

  • Fix XREAD bug #256

🧰 Maintenance

  • Testing for python 3.12
  • Dependencies update

v2.20.0

πŸš€ Features

  • Implement BITFIELD command #247
  • Implement COMMAND, COMMAND INFO, COMMAND COUNT #248

v2.19.0

πŸš€ Features

  • Implement Bloom filters commands #239

πŸ› Bug Fixes

  • Fix error on blocking XREADGROUP #237

v2.18.1

πŸ› Bug Fixes

  • Fix stream type issue #233

🧰 Maintenance

  • Add mypy hints to everything
  • Officially for redis-py 5.0.0, redis 7.2

v2.18.0

πŸš€ Features

  • Implement PUBSUB NUMPAT #195, SSUBSCRIBE #199, SPUBLISH #198, SUNSUBSCRIBE #200, PUBSUB SHARDCHANNELS #196, PUBSUB SHARDNUMSUB #197

πŸ› Bug Fixes

  • Fix All aio.FakeRedis instances share the same server #218

v2.17.0

πŸš€ Features

πŸ› Bug Fixes

  • Fix incorrect error msg for the group not found #210
  • fix: use the same server_key within the pipeline when issued watch #213
  • issue with ZRANGE and ZRANGESTORE with BYLEX #214

Contributors

We'd like to thank all the contributors who worked on this release!

@OlegZv, @sjjessop

v2.16.0

πŸš€ Features

  • Implemented support for JSON.MSET #174, JSON.MERGE #181

πŸ› Bug Fixes

  • Add support for version for async FakeRedis #205

🧰 Maintenance

  • Updated how to test django_rq #204

v2.15.0

πŸš€ Features

  • Implemented support for various stream groups commands:
  • Implemented sorted set commands:
  • Implemented list commands:

🧰 Maintenance

  • Improved documentation.

v2.14.2

πŸ› Bug Fixes

  • Fix documentation link

v2.14.1

πŸ› Bug Fixes

  • Fix requirement for packaging.Version #177

v2.14.0

πŸš€ Features

  • Implement HRANDFIELD #156
  • Implement JSON.MSET

🧰 Maintenance

  • Improve streams code

v2.13.0

πŸ› Bug Fixes

  • Fixed xadd timestamp (fixes #151) (#152)
  • Implement XDEL #153

🧰 Maintenance

  • Improve test code
  • Fix reported security issue

v2.12.1

πŸ› Bug Fixes

  • Add support for Connection.read_response arguments used in redis-py 4.5.5 and 5.0.0
  • Adding state for scan commands (#99)

🧰 Maintenance

  • Improved documentation (added async sample, etc.)
  • Add redis-py 5.0.0b3 to GitHub workflow

v2.12.0

πŸš€ Features

  • Implement XREAD #147

v2.11.2

πŸ› Bug Fixes

  • Unique FakeServer when no connection params are provided (#142)

v2.11.1

🧰 Maintenance

  • Minor fixes supporting multiple connections
  • Update documentation

v2.11.0

πŸš€ Features

  • connection parameters awareness: Creating multiple clients with the same connection parameters will result in the same server data structure.

πŸ› Bug Fixes

  • Fix creating fakeredis.aioredis using url with user/password (#139)

v2.10.3

🧰 Maintenance

  • Support for redis-py 5.0.0b1
  • Include tests in sdist (#133)

πŸ› Bug Fixes

  • Fix import used in GenericCommandsMixin.randomkey (#135)

v2.10.2

πŸ› Bug Fixes

  • Fix async_timeout usage on py3.11 (#132)

v2.10.1

πŸ› Bug Fixes

  • Enable testing django-cache using FakeConnection.

v2.10.0

πŸš€ Features

  • All geo commands implemented

v2.9.2

πŸ› Bug Fixes

  • Fix bug for xrange

v2.9.1

πŸ› Bug Fixes

  • Fix bug for xrevrange

v2.9.0

πŸš€ Features

  • Implement XTRIM
  • Add support for MAXLEN, MAXID, LIMIT arguments for XADD command
  • Add support for ZRANGE arguments for ZRANGE command #127

🧰 Maintenance

  • Relax python version requirement #128

v2.8.0

πŸš€ Features

  • Support for redis-py 4.5.0 #125

πŸ› Bug Fixes

  • Fix import error for redis-py v3+ #121

v2.7.1

πŸ› Bug Fixes

  • Fix import error for NoneType #527

v2.7.0

πŸš€ Features

  • Implement JSON.ARRINDEX, JSON.OBJLEN, JSON.OBJKEYS , JSON.ARRPOP, JSON.ARRTRIM, JSON.NUMINCRBY, JSON.NUMMULTBY, XADD, XLEN, XRANGE, XREVRANGE

🧰 Maintenance

  • Improve json commands implementation.
  • Improve commands documentation.

v2.6.0

πŸš€ Features

  • Implement JSON.TYPE, JSON.ARRLEN and JSON.ARRAPPEND

πŸ› Bug Fixes

  • Fix encoding of None (#118)

🧰 Maintenance

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.5.0...v2.6.0

v2.5.0

πŸš€ Features

  • Implement support for BITPOS (bitmap command) (#112)

πŸ› Bug Fixes

  • Fix json mget when dict is returned (#114)
  • fix: proper export (#116)

🧰 Maintenance

  • Extract param handling (#113)

Contributors

We'd like to thank all the contributors who worked on this release!

@Meemaw, @Pichlerdom

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.4.0...v2.5.0

v2.4.0

πŸš€ Features

πŸ› Bug Fixes

  • Fix a bug the checking type in scan_iter (#109)

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.3.0...v2.4.0

v2.3.0

πŸš€ Features

  • Implement GETEX (#102)
  • Implement support for JSON.STRAPPEND (json command) (#98)
  • Implement JSON.STRLEN, JSON.TOGGLE and fix bugs with JSON.DEL (#96)
  • Implement PUBSUB CHANNELS, PUBSUB NUMSUB

πŸ› Bug Fixes

  • ZADD with XX \& GT allows updates with lower scores (#105)

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.2.0...v2.3.0

v2.2.0

πŸš€ Features

🧰 Maintenance

  • Implement script to create issues for missing commands
  • Remove checking for deprecated redis-py versions in tests

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.1.0...v2.2.0

v2.1.0

πŸš€ Features

  • Implement json.mget (#85)
  • Initial json module support - JSON.GET, JSON.SET and JSON.DEL (#80)

πŸ› Bug Fixes

  • fix: add nowait for asyncio disconnect (#76)

🧰 Maintenance

  • Refactor how commands are registered (#79)
  • Refactor tests from redispy4_plus (#77)

Contributors

We'd like to thank all the contributors who worked on this release!

@hyeongguen-song, @the-wondersmith

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v2.0.0...v2.1.0

v2.0.0

πŸš€ Breaking changes

  • Remove support for aioredis separate from redis-py (redis-py versions 4.1.2 and below). (#65)

πŸš€ Features

  • Add support for redis-py v4.4rc4 (#73)
  • Add mypy support (#74)

🧰 Maintenance

  • Separate commands to mixins (#71)
  • Use release-drafter
  • Update GitHub workflows

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.10.1...v2.0.0

v1.10.1

What's Changed

New Contributors

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.10.0...v1.10.1

v1.10.0

What's Changed

  • implement GETDEL and SINTERCARD support in #57
  • Test get float-type behavior in #59
  • Implement BZPOPMIN/BZPOPMAX support in #60

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.9.4...v1.10.0

v1.9.4

What's Changed

v1.9.3

Changed

  • Removed python-six dependency

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.9.2...v1.9.3

v1.9.2

What's Changed

  • zadd support for GT/LT in #49
  • Remove six dependency in #51
  • Add host to conn_pool_args in #51

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.9.1...v1.9.2

v1.9.1

What's Changed

  • Zrange byscore in #44
  • Expire options in #46

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.9.0...v1.9.1

v1.9.0

What's Changed

  • Enable redis7 support in #42

Full Changelog: https://github.com/cunla/fakeredis-py/compare/v1.8.2...v1.9.0

v1.8.2

What's Changed

  • Update the publish GitHub action to create an issue on failure by @terencehonles in #33
  • Add release draft job in #37
  • Fix input and output type of cursors for SCAN commands by @tohin in #40
  • Fix passing params in argsβ€”Fix #36 in #41

New Contributors

  • @tohin made their first contribution in #40

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/v1.8.1...v1.8.2

v1.8.1

What's Changed

New Contributors

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/v1.8...v1.8.1

v1.8

What's Changed

  • Fix handling url with username and password in #27
  • Refactor tests in #28
  • 23 - Re-add dependencies lost during switch to poetry by @xkortex in #26

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/v1.7.6.1...v1.8

v1.7.6

Added

Removed

What's Changed

  • fix: work with redis.asyncio by @zhongkechen in #10
  • Migrate to poetry in #12
  • Create annotation for redis4+ tests in #14
  • Make aioredis and lupa optional dependencies in #16
  • Remove aioredis requirement if redis-py 4.2+ by @ikornaselur in #19

New Contributors

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/v1.7.5...v1.7.6

Thanks to our sponsors this month

v1.7.5

What's Changed

  • Fix python3.8 redis4.2+ issue in #6

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/v1.7.4...v1.7.5

v1.7.4

What's Changed

  • Support for python3.8 in #1
  • Feature/publish action in #2

Full Changelog: https://github.com/dsoftwareinc/fakeredis-py/compare/1.7.1...v1.7.4