4.0.0.
September 20th, 2017
- ZADD score param changed from map to multimap to allow multiple elements with same score
- connection_callback (replacement of disconnection_callback). Called for any steps of connection process (attempt, success, failure, reconnection, drop, ...)
- Sentinel support
- Automatic reconnection if requested
- Connection timeout
- Ability to set number of io workers if you are working with tacopie
redis_clientrenamed intoclientredis_subscriberrenamed intosubscriber- commands that failed to be sent (client not connected or disconnected) get their callback called with an error reply
connection failure. This ensure that now all callbacks are always called - if reconnection process is enabled and succeed, failed commands are resent
- if you send command and commit while client is not connected, it will now dismiss the commands and call their callback with an error, or resend them if reconnection is enabled. This is a change compared to the existing behavior that simply kept the commands in the buffer.
- doxygen documentation
- future_client: all functions have been merge into the redis_client
- disconnection_callback: it is now replaced by the connection callback
This is a major release with lots of breaking changes. It aims to enable high availability configuration as well as improved consistency with an enhanced design.
If you are upgrading please consider the following breaking changes:
redis_clientis nowclientandredis_subscriberis nowsubscriberfuture_clienthas been removed, but it is actually merged intoclient. Simply switch fromfuture_clienttoclientand you will have the same behaviordisconnection_callbackhas been removed and replaced by aconnection_callback. If you are looking for exact same behavior, you will have to check if the state param is equal todropped.- commands callbacks are always called. In case of failure, an error reply is passed in.
Any other changes should not be breaking changes but you might be interested into the added features.
3.5.4.
August 24th, 2017
- fix issue #86 by changing some int32_t to int64_t (was causing overflow leading to stuck program on some architecture)
- improve travis build with caching
- ZADD command
- CLIENT KILL
None
3.5.3.
July 2nd, 2017
- bump tacopie to fix #85 - select keep sleeping and does not process incoming read/write events
None
None
3.5.2.
June 19th, 2017
- Fix TACOPIE_CMAKE_ARGS getting converted to a string instead of a list
- Fix Issue 76 (CMake install dir)
- bump tacopie - fixes to address high CPU usage issues.
- Expose wait_for_removal in .disconnect of redis_client redis_subcriber future_client
None
3.5.1.
April 30th, 2017
- Fix compilations on windows
- Fix reconnection behavior
- Do not clear commands/callback buffer on calling commit or sync_commit while client is disconnected.
None
None
3.5.0.
April 9th, 2017
None
- New feature - Update tacopie ref - Provide support for Unix socket. Simply pass in 0 as the port when building a
redis_client,redis_subscriberorfuture_client. Then, the host will automatically be treated as the path to a Unix socket instead of a real host. - More in #67.
None
3.4.0.
- Change: update tacopie ref - IO Service is now based on
selectand not onpollanymore to solve some issues encountered on windows due to the buggy implementation ofpollon windows Systems.
None
None
3.3.0.
- Rename
redis_client::before_callbackintoredis_client::set_callback_runnerwhich is more relevant. - Before,
future_clientautomatically called.commitwhen sending a command, meaning that no pipelining was done for thefuture_client. This has been changed and thefuture_clientdo not call.commitanymore: this is a breaking change and you must call.commitor.sync_commitwhen you wish the commands to be effectively sent. Please refer to the examples if necessary.
- Add
commitandsync_commitmethodsto thefuture_clientfor pipelining support. - documentation for
redis_client::before_callbackhas been added - documentation for
future_clienthas been added
None
3.2.1.
- Fix static initialization order fiasco condition
- Change
__CPP_REDIS_USE_TACOPIE(cmake variable:USE_TACOPIE) into__CPP_REDIS_USE_CUSTOM_TCP_CLIENT(cmake variable:USE_CUSTOM_TCP_CLIENT). Of course, the meaning is now the opposite.
None
None
3.2.0.
- tacopie is no longer a mandatory dependency, but just provided by default and can be override if necessary.
- add a new interface,
cpp_redis::network::tcp_client_ifacethat allows you to use your own tcp_client in place of tacopie.
- The
sync_clienthas been removed as it was a duplicate ofredis_client::sync_commitbut with a different implementation based on futures. Please useredis_clientand callsync_commitinstead.
3.1.2.
- rename the
setbit()function intosetbit_()in order to avoid conflict with the standard library macrosetbitcausing compilation error.
- add
send()method to thesync_clientandfuture_client.
None
3.1.1.
- Fix: subscriber callbacks were sometimes not called due to poll not listening to the appropriate events. Mostly impacted windows as referred in #51, but unix version might also be impacted. Fixed by updating the reference tacopie which contains the fix.
None
None
3.1.0.
- Fix: compilation for specific windows compilers concerning atomic variables
- Fix: handle correctly array replies with negative size by returning a null reply instead of throwing an invalid format exception
- Fix: Bump tacopie version to retrieve a fix concerning gethostbyname() thread-safety issue on unix
- Fix: compilation for programs based on Qt ('slots' conflict)
- Add some overloads for the Z set functions to support floating point values
- Add an auth method to the subscriber class to allow a subscriber to authenticate on the redis server
None
3.0.0.
- Rewrite the network side of cpp_redis by using the tacopie library
- Tacopie is now a submodule of cpp_redis
- All network related code
2.2.
- Bug patch
- io_service is no longer a singleton
redis_clientandredis_subscriberinstances can be assigned specific io_service
- Integration Tests
- Travis Integration
- Wiki
- Port of the library on Windows
- Support for acknowledgement callbacks for
cpp_redis::redis_subscriber - Logging system
- Compilation Customizations
None