- fix ZINTERSTORE where target is one of the source sets
- added support for ZRank and ZRevRank with score (thanks Jeff Howell)
- fix MEMORY subcommand casing (thanks @joshaber)
- use streamCmp in Xtrim (thanks @daniel-cohere)
- minimum Go version is now 1.17
- fix integer overflow (thanks @wszaranski)
- test against the last BSD redis (7.2.4)
- ignore 'redis.set_repl()' call (thanks @TingluoHuang)
- various build fixes (thanks @wszaranski)
- add StartAddrTLS function (thanks @agriffaut)
- support for the NOMKSTREAM option for XADD (thanks @Jahaja)
- return empty array for SRANDMEMBER on nonexistent key (thanks @WKBae)
- support for SINTERCARD (thanks @s-barr-fetch)
- support for EXPIRETIME and PEXPIRETIME (thanks @wszaranski)
- fix GEO* units to be case insensitive
- support COUNT in SCAN and ZSCAN (thanks @BarakSilverfort)
- support for OBJECT IDLETIME (thanks @nerd2)
- support for HRANDFIELD (thanks @sejin-P)
- support for MEMORY USAGE (thanks @davidroman0O)
- test against Redis 7.2.0
- support for CLIENT SETNAME/GETNAME (thanks @mr-karan)
- fix very small numbers (thanks @zsh1995)
- use the same float-to-string logic real Redis uses
- support SMISMEMBER (thanks @sandyharvie)
- fix ZADD LT/LG (thanks @sejin-P)
- fix COPY (thanks @jerargus)
- quicker SPOP
- fix lua error_reply (thanks @pkierski)
- fix use of blocking functions in lua
- support for ZMSCORE (thanks @lsgndln)
- lua cache (thanks @tonyhb)
- support MINID in XADD (thanks @nathan-cormier)
- support BLMOVE (thanks @sevein)
- fix COMMAND (thanks @pje)
- fix 'XREAD ... $' on a non-existing stream
- support SET NX GET special case
- implement redis 7.0.x (from 6.X). Main changes:
- test against 7.0.7
- update error messages
- support nx|xx|gt|lt options in [P]EXPIRE[AT]
- update how deleted items are processed in pending queues in streams
- resolve $ to latest ID in XREAD (thanks @josh-hook)
- handle disconnect in blocking functions (thanks @jgirtakovskis)
- fix type conversion bug in redisToLua (thanks Sandy Harvie)
- BRPOP{LPUSH} timeout can be float since 6.0
- basic INFO support (thanks @kirill-a-belov)
- support COUNT in SSCAN (thanks @Abdi-dd)
- test and support Go 1.19
- support LPOS (thanks @ianstarz)
- support XPENDING, XGROUP {CREATECONSUMER,DESTROY,DELCONSUMER}, XINFO {CONSUMERS,GROUPS}, XCLAIM (thanks @sandyharvie)
- set miniredis.DumpMaxLineLen to get more Dump() info (thanks @afjoseph)
- fix invalid resposne of COMMAND (thanks @zsh1995)
- fix possibility to generate duplicate IDs in XADD (thanks @readams)
- adds support for XAUTOCLAIM min-idle parameter (thanks @readams)
- support for GETEX (thanks @dntj)
- support for GT and LT in ZADD (thanks @lsgndln)
- support for XAUTOCLAIM (thanks @randall-fulton)
- back to support Go >= 1.14 (thanks @ajatprabha and @marcind)
- support for TYPE in SCAN (thanks @0xDiddi)
- update BITPOS (thanks @dirkm)
- fix a lua redis.call() return value (thanks @mpetronic)
- update ZRANGE (thanks @valdemarpereira)
- support for ZUNION (thanks @propan)
- support for COPY (thanks @matiasinsaurralde and @rockitbaby)
- support for LMOVE (thanks @btwear)
- added miniredis.RunT(t)
- fix ZINTERSTORE with sets (thanks @lingjl2010 and @okhowang)
- fix exclusive ranges in XRANGE (thanks @joseotoro)
- simplify some code (thanks @zonque)
- support for EXAT/PXAT in SET
- support for XTRIM (thanks @joseotoro)
- support for ZRANDMEMBER
- support for redis.log() in lua (thanks @dirkm)
- Fix race condition in blocking code (thanks @zonque and @robx)
- XREAD accepts '$' as ID (thanks @bradengroom)
- EVAL should cache the script (thanks @guoshimin)
- target redis 6.2 and added new args to various commands
- support for all hyperlog commands (thanks @ilbaktin)
- support for GETDEL (thanks @wszaranski)
- added XPENDING
- support for BLOCK option in XREAD and XREADGROUP
- fix BITPOS error (thanks @xiaoyuzdy)
- small fixes for XREAD, XACK, and XDEL. Mostly error cases.
- fix empty EXEC return type (thanks @ashanbrown)
- fix XDEL (thanks @svakili and @yvesf)
- fix FLUSHALL for streams (thanks @svakili)
- fix problem where Lua code didn't set the selected DB
- update to redis 6.0.10 (thanks @lazappa)
- update LUA dependency
- deal with (p)unsubscribe when there are no channels
- mod tidy
- support for HELLO and the RESP3 protocol
- KEEPTTL in SET (thanks @johnpena)
- support Go 1.14 and 1.15
- update the
Check...()
methods - support for XREAD (thanks @pieterlexis)
- Use SAN instead of CN in self signed cert for testing (thanks @johejo)
- Travis CI now tests against the most recent two versions of Go (thanks @johejo)
- changed unit and integration tests to compare raw payloads, not parsed payloads
- remove "redigo" dependency
- added HSTRLEN
- minimal support for ACL users in AUTH
- added RunTLS(...)
- added SetError(...)
- redis 6
- Lua json update (thanks @gsmith85)
- CLUSTER commands (thanks @kratisto)
- fix TOUCH
- fix a shutdown race condition
- ZUNIONSTORE now supports standard set types (thanks @wshirey)
- support for TOUCH (thanks @cleroux)
- support for cluster and stream commands (thanks @kak-tus)
- make sure Lua code is executed concurrently
- add command GEORADIUSBYMEMBER (thanks @kyeett)
- globals protection for Lua code (thanks @vk-outreach)
- HSET update (thanks @carlgreen)
- fix BLPOP block on shutdown (thanks @Asalle)
- added XRANGE/XREVRANGE, XADD, and XLEN (thanks @skateinmars)
- added GEODIST
- improved precision for geohashes, closer to what real redis does
- use 128bit floats internally for INCRBYFLOAT and related (thanks @timnd)
- added m.Server()
- added UNLINK
- fix DEL zero-argument case
- cleanup some direct access commands
- added GEOADD, GEOPOS, GEORADIUS, and GEORADIUS_RO
- fix issue with ZRANGEBYLEX
- fix issue with BRPOPLPUSH and direct access
- proper versioned import of github.com/gomodule/redigo (thanks @yfei1)
- fix messages generated by PSUBSCRIBE
- optional internal seed (thanks @zikaeroh)
Proper v2
in go.mod.
See https://github.com/alicebob/miniredis/releases for the full changelog