Currently, after the release of redis 7, Functions are supported.
Based on Functions, we can extend Redis with more commands based on supported data types or new data types, like JSON, with the actual data stored with string or hash. Performance are not considered for now, functionality is the only consideration. According to the roadmap, more and more high level language runtime will be supported.
Supporting new data types is also a goal for Modules. But Modules api are more low level, imho.
Will the community suggest or will make Functions as best practice to support new data types or data commands.
Comment From: ranshid
@andyxning I think @itamarhaber is more qualified to provide a good answer to your questions. I do think that there is still a large difference between modules and functions. While functions enable extending the redis API and operate some extended business logic, they cannot extend the core redis functionality. things like blocking clients while executing background threads, providing proprietary authentications methods and supporting different network flavors are some things you can achieve with modules but not by using function libraries.