Using the tile38-cli, the TTL command omitted the ttl value from the
json response.
For example:
127.0.0.1:9851> TTL my ufo
{"ok":true,"elapsed":"5.57µs"}
Is now fixed to show
127.0.0.1:9851> TTL my ufo
{"ok":true,"ttl":-1,"elapsed":"5.57µs"}
Where "ttl" is the remaining time before the object is is deleted.
The value -1 means that the object is available, but does not have
an expiration.
Thanks @phulst for finding this bug. closes#116
JSET key id path value [RAW]
JGET key id path [RAW]
JDEL key id path
Allows for working with JSON strings, for example:
JSET user 901 name Tom
JGET user 901
> '{"name":"Tom"}'
JSET user 901 name.first Tom
JSET user 901 name.last Anderson
> '{"name":{"first":"Tom","last":"Anderson"}'
JDEL user 901 name.last
> '{"name":{"first":"Tom"}'
All commands use the GJSON path syntax, for more information:
Setting JSON: https://github.com/tidwall/sjson
Getting JSON: https://github.com/tidwall/gjson
This addresses an issue #73 that @huangpeizhi discovered while using
Tile38 in production where AOFSHRINK sometimes corrupts the database
causing the server to not start the next time.