Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
1649e509
R
redis
项目概览
Turbo码先生
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1649e509
编写于
2月 14, 2013
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cluster: the cluster state structure is now heap allocated.
上级
9dfd11c3
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
98 addition
and
96 deletion
+98
-96
src/cluster.c
src/cluster.c
+87
-86
src/config.c
src/config.c
+2
-2
src/db.c
src/db.c
+3
-3
src/redis.c
src/redis.c
+3
-3
src/redis.h
src/redis.h
+3
-2
未找到文件。
src/cluster.c
浏览文件 @
1649e509
此差异已折叠。
点击以展开。
src/config.c
浏览文件 @
1649e509
...
@@ -375,8 +375,8 @@ void loadServerConfigFromString(char *config) {
...
@@ -375,8 +375,8 @@ void loadServerConfigFromString(char *config) {
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
err
=
"argument must be 'yes' or 'no'"
;
goto
loaderr
;
}
}
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"cluster-config-file"
)
&&
argc
==
2
)
{
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"cluster-config-file"
)
&&
argc
==
2
)
{
zfree
(
server
.
cluster
.
configfile
);
zfree
(
server
.
cluster
->
configfile
);
server
.
cluster
.
configfile
=
zstrdup
(
argv
[
1
]);
server
.
cluster
->
configfile
=
zstrdup
(
argv
[
1
]);
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"lua-time-limit"
)
&&
argc
==
2
)
{
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"lua-time-limit"
)
&&
argc
==
2
)
{
server
.
lua_time_limit
=
strtoll
(
argv
[
1
],
NULL
,
10
);
server
.
lua_time_limit
=
strtoll
(
argv
[
1
],
NULL
,
10
);
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"slowlog-log-slower-than"
)
&&
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"slowlog-log-slower-than"
)
&&
...
...
src/db.c
浏览文件 @
1649e509
...
@@ -745,14 +745,14 @@ int *zunionInterGetKeys(struct redisCommand *cmd,robj **argv, int argc, int *num
...
@@ -745,14 +745,14 @@ int *zunionInterGetKeys(struct redisCommand *cmd,robj **argv, int argc, int *num
void
SlotToKeyAdd
(
robj
*
key
)
{
void
SlotToKeyAdd
(
robj
*
key
)
{
unsigned
int
hashslot
=
keyHashSlot
(
key
->
ptr
,
sdslen
(
key
->
ptr
));
unsigned
int
hashslot
=
keyHashSlot
(
key
->
ptr
,
sdslen
(
key
->
ptr
));
zslInsert
(
server
.
cluster
.
slots_to_keys
,
hashslot
,
key
);
zslInsert
(
server
.
cluster
->
slots_to_keys
,
hashslot
,
key
);
incrRefCount
(
key
);
incrRefCount
(
key
);
}
}
void
SlotToKeyDel
(
robj
*
key
)
{
void
SlotToKeyDel
(
robj
*
key
)
{
unsigned
int
hashslot
=
keyHashSlot
(
key
->
ptr
,
sdslen
(
key
->
ptr
));
unsigned
int
hashslot
=
keyHashSlot
(
key
->
ptr
,
sdslen
(
key
->
ptr
));
zslDelete
(
server
.
cluster
.
slots_to_keys
,
hashslot
,
key
);
zslDelete
(
server
.
cluster
->
slots_to_keys
,
hashslot
,
key
);
}
}
unsigned
int
GetKeysInSlot
(
unsigned
int
hashslot
,
robj
**
keys
,
unsigned
int
count
)
{
unsigned
int
GetKeysInSlot
(
unsigned
int
hashslot
,
robj
**
keys
,
unsigned
int
count
)
{
...
@@ -763,7 +763,7 @@ unsigned int GetKeysInSlot(unsigned int hashslot, robj **keys, unsigned int coun
...
@@ -763,7 +763,7 @@ unsigned int GetKeysInSlot(unsigned int hashslot, robj **keys, unsigned int coun
range
.
min
=
range
.
max
=
hashslot
;
range
.
min
=
range
.
max
=
hashslot
;
range
.
minex
=
range
.
maxex
=
0
;
range
.
minex
=
range
.
maxex
=
0
;
n
=
zslFirstInRange
(
server
.
cluster
.
slots_to_keys
,
range
);
n
=
zslFirstInRange
(
server
.
cluster
->
slots_to_keys
,
range
);
while
(
n
&&
n
->
score
==
hashslot
&&
count
--
)
{
while
(
n
&&
n
->
score
==
hashslot
&&
count
--
)
{
keys
[
j
++
]
=
n
->
obj
;
keys
[
j
++
]
=
n
->
obj
;
n
=
n
->
level
[
0
].
forward
;
n
=
n
->
level
[
0
].
forward
;
...
...
src/redis.c
浏览文件 @
1649e509
...
@@ -1187,7 +1187,7 @@ void initServerConfig() {
...
@@ -1187,7 +1187,7 @@ void initServerConfig() {
server
.
repl_ping_slave_period
=
REDIS_REPL_PING_SLAVE_PERIOD
;
server
.
repl_ping_slave_period
=
REDIS_REPL_PING_SLAVE_PERIOD
;
server
.
repl_timeout
=
REDIS_REPL_TIMEOUT
;
server
.
repl_timeout
=
REDIS_REPL_TIMEOUT
;
server
.
cluster_enabled
=
0
;
server
.
cluster_enabled
=
0
;
server
.
cluster
.
configfile
=
zstrdup
(
"nodes.conf"
);
server
.
cluster
_
configfile
=
zstrdup
(
"nodes.conf"
);
server
.
lua_caller
=
NULL
;
server
.
lua_caller
=
NULL
;
server
.
lua_time_limit
=
REDIS_LUA_TIME_LIMIT
;
server
.
lua_time_limit
=
REDIS_LUA_TIME_LIMIT
;
server
.
lua_client
=
NULL
;
server
.
lua_client
=
NULL
;
...
@@ -1661,7 +1661,7 @@ int processCommand(redisClient *c) {
...
@@ -1661,7 +1661,7 @@ int processCommand(redisClient *c) {
!
(
c
->
cmd
->
getkeys_proc
==
NULL
&&
c
->
cmd
->
firstkey
==
0
))
{
!
(
c
->
cmd
->
getkeys_proc
==
NULL
&&
c
->
cmd
->
firstkey
==
0
))
{
int
hashslot
;
int
hashslot
;
if
(
server
.
cluster
.
state
!=
REDIS_CLUSTER_OK
)
{
if
(
server
.
cluster
->
state
!=
REDIS_CLUSTER_OK
)
{
addReplyError
(
c
,
"The cluster is down. Check with CLUSTER INFO for more information"
);
addReplyError
(
c
,
"The cluster is down. Check with CLUSTER INFO for more information"
);
return
REDIS_OK
;
return
REDIS_OK
;
}
else
{
}
else
{
...
@@ -1670,7 +1670,7 @@ int processCommand(redisClient *c) {
...
@@ -1670,7 +1670,7 @@ int processCommand(redisClient *c) {
if
(
n
==
NULL
)
{
if
(
n
==
NULL
)
{
addReplyError
(
c
,
"Multi keys request invalid in cluster"
);
addReplyError
(
c
,
"Multi keys request invalid in cluster"
);
return
REDIS_OK
;
return
REDIS_OK
;
}
else
if
(
n
!=
server
.
cluster
.
myself
)
{
}
else
if
(
n
!=
server
.
cluster
->
myself
)
{
addReplySds
(
c
,
sdscatprintf
(
sdsempty
(),
addReplySds
(
c
,
sdscatprintf
(
sdsempty
(),
"-%s %d %s:%d
\r\n
"
,
ask
?
"ASK"
:
"MOVED"
,
"-%s %d %s:%d
\r\n
"
,
ask
?
"ASK"
:
"MOVED"
,
hashslot
,
n
->
ip
,
n
->
port
));
hashslot
,
n
->
ip
,
n
->
port
));
...
...
src/redis.h
浏览文件 @
1649e509
...
@@ -820,8 +820,9 @@ struct redisServer {
...
@@ -820,8 +820,9 @@ struct redisServer {
int
notify_keyspace_events
;
/* Events to propagate via Pub/Sub. This is an
int
notify_keyspace_events
;
/* Events to propagate via Pub/Sub. This is an
xor of REDIS_NOTIFY... flags. */
xor of REDIS_NOTIFY... flags. */
/* Cluster */
/* Cluster */
int
cluster_enabled
;
/* Is cluster enabled? */
int
cluster_enabled
;
/* Is cluster enabled? */
clusterState
cluster
;
/* State of the cluster */
char
*
cluster_configfile
;
/* Cluster auto-generated config file name. */
clusterState
*
cluster
;
/* State of the cluster */
/* Scripting */
/* Scripting */
lua_State
*
lua
;
/* The Lua interpreter. We use just one for all clients */
lua_State
*
lua
;
/* The Lua interpreter. We use just one for all clients */
redisClient
*
lua_client
;
/* The "fake client" to query Redis from Lua */
redisClient
*
lua_client
;
/* The "fake client" to query Redis from Lua */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录