| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Related to #4483. As suggested by @soloestoy, we can retrieve the SHA1
from the body. Given that in the new implementation using AUX fields we
ended copying around a lot to create new objects and strings, extremize
such concept and trade CPU for space inside the RDB file.
|
|
|
|
|
| |
See #4483. This is needed because luaCreateFunction() is now called
from RDB loading code outside a client context.
|
|
|
|
|
|
|
|
|
|
| |
This is currently needed in order to fix #4483, but this can be
useful in other contexts, so maybe later we may want to remove the
conditionals and always save/load scripts.
Note that we are using the "lua" AUX field here, in order to guarantee
backward compatibility of the RDB file. The unknown AUX fields must be
discarded by past versions of Redis.
|
|\
| |
| | |
fix a typo
|
| | |
|
|\ \
| | |
| | | |
Fix some typos
|
| | | |
|
|\ \ \
| | | |
| | | | |
redis-cli.c typo: helpe -> helper.
|
| |/ /
| | |
| | |
| | | |
Signed-off-by: Bo Cai <charpty@gmail.com>
|
|\ \ \
| | | |
| | | | |
redis-cli.c typo: Requets -> Requests.
|
| |/ /
| | |
| | |
| | | |
Signed-off-by: Bo Cai <charpty@gmail.com>
|
|\ \ \
| | | |
| | | | |
Fix typo
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Fix typo
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Update link to https and use inline link
|
| | | | |
|
| | | | |
|
|\ \ \ \ |
|
| |\ \ \ \
| | | | | |
| | | | | | |
Correct spelling of "faield".
|
| | | |_|/
| | |/| | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
See #4192, the original PR removed lines of code that are actually
needed, so thanks to @chunqiulfq for reporting the problem, but merging
solution from @jeesyn after checking, together with @artix75, that the
logic covers all the cases.
|
|\ \ \ \
| | | | |
| | | | | |
Fix file descriptor leak and error handling
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix undefined behavior constant defined.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
See #4472.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
After #4472 the command may have just 2 arguments.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
A minor fix and `help` subcommand for `OBJECT`
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When maxmemory is set to noeviction, idletime is implicitly kept. This renders access frequency nonsensical.
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Regression for #4452.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
expire & latency: fix the missing latency records generated by expire
|
| | |_|/ / / /
| |/| | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Related to PR #4412 and issue #4407.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
PSYNC2: safe free backlog when reach the time limit and others
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
it means that after this change all the replication
info in RDB is valid, and it can distinguish us from
the older version.
|
| | | | | | | | |
|
| | | | | | | | |
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
When we free the backlog, we should use a new
replication ID and clear the ID2. Since without
backlog we can not increment master_repl_offset
even do write commands, that may lead to inconsistency
when we try to connect a "slave-before" master
(if this master is our slave before, our replid
equals the master's replid2). As the master have our
history, so we can match the master's replid2 and
second_replid_offset, that make partial sync work,
but the data is inconsistent.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Fix module name conflict
|
| | | | | | | | |
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
fix string to double conversion, stopped parsing on \0 …
|
|/ / / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
has more data.
getLongLongFromObject calls string2ll which has this line:
/* Return if not all bytes were used. */
so if you pass an sds with 3 characters "1\01" it will fail.
but getLongDoubleFromObject calls strtold, and considers it ok if eptr[0]==`\0`
i.e. if the end of the string found by strtold ends with null terminator
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> setrange a 2 2
(integer) 3
127.0.0.1:6379> get a
"1\x002"
127.0.0.1:6379> incrbyfloat a 2
"3"
127.0.0.1:6379> get a
"3"
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
See issue #4466 / #4467.
|