Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
5244d6e5
Commit
5244d6e5
authored
Nov 14, 2011
by
antirez
Browse files
rewrite INCRBYFLOAT as SETs for AOF/replication
parent
5574b53e
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/t_string.c
View file @
5244d6e5
...
@@ -385,7 +385,7 @@ void decrbyCommand(redisClient *c) {
...
@@ -385,7 +385,7 @@ void decrbyCommand(redisClient *c) {
void
incrbyfloatCommand
(
redisClient
*
c
)
{
void
incrbyfloatCommand
(
redisClient
*
c
)
{
long
double
incr
,
value
;
long
double
incr
,
value
;
robj
*
o
,
*
new
;
robj
*
o
,
*
new
,
*
aux
;
o
=
lookupKeyWrite
(
c
->
db
,
c
->
argv
[
1
]);
o
=
lookupKeyWrite
(
c
->
db
,
c
->
argv
[
1
]);
if
(
o
!=
NULL
&&
checkType
(
c
,
o
,
REDIS_STRING
))
return
;
if
(
o
!=
NULL
&&
checkType
(
c
,
o
,
REDIS_STRING
))
return
;
...
@@ -406,6 +406,14 @@ void incrbyfloatCommand(redisClient *c) {
...
@@ -406,6 +406,14 @@ void incrbyfloatCommand(redisClient *c) {
signalModifiedKey
(
c
->
db
,
c
->
argv
[
1
]);
signalModifiedKey
(
c
->
db
,
c
->
argv
[
1
]);
server
.
dirty
++
;
server
.
dirty
++
;
addReplyBulk
(
c
,
new
);
addReplyBulk
(
c
,
new
);
/* Always replicate INCRBYFLOAT as a SET command with the final value
* in order to make sure that differences in float pricision or formatting
* will not create differences in replicas or after an AOF restart. */
aux
=
createStringObject
(
"SET"
,
3
);
rewriteClientCommandArgument
(
c
,
0
,
aux
);
decrRefCount
(
aux
);
rewriteClientCommandArgument
(
c
,
2
,
new
);
}
}
void
appendCommand
(
redisClient
*
c
)
{
void
appendCommand
(
redisClient
*
c
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment