Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
92dd76c8
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,发现更多精彩内容 >>
提交
92dd76c8
编写于
9月 29, 2011
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
redis-trib: all node information into a single hash
上级
b08c9dd2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
20 deletion
+15
-20
src/redis-trib.rb
src/redis-trib.rb
+15
-20
未找到文件。
src/redis-trib.rb
浏览文件 @
92dd76c8
...
...
@@ -18,11 +18,11 @@ class ClusterNode
exit
1
end
@r
=
nil
@
host
=
s
[
0
]
@
port
=
s
[
1
]
@
slots
=
{}
@
dirty
=
false
@
info
=
nil
@
info
=
{}
@
info
[
:host
]
=
s
[
0
]
@
info
[
:port
]
=
s
[
1
]
@
info
[
:slots
]
=
{}
@
dirty
=
false
# True if we need to flush slots info into node.
@friends
=
[]
end
...
...
@@ -31,18 +31,18 @@ class ClusterNode
end
def
slots
@
slots
@
info
[
:slots
]
end
def
to_s
"
#{
@
host
}
:
#{
@port
}
"
"
#{
@
info
[
:host
]
}
:
#{
@info
[
:port
]
}
"
end
def
connect
(
o
=
{})
return
if
@r
xputs
"Connecting to node
#{
self
}
: "
begin
@r
=
Redis
.
new
(
:host
=>
@
host
,
:port
=>
@port
)
@r
=
Redis
.
new
(
:host
=>
@
info
[
:host
],
:port
=>
@info
[
:port
]
)
@r
.
ping
rescue
puts
"ERROR"
...
...
@@ -85,8 +85,8 @@ class ClusterNode
:link_status
=>
link_status
}
if
info
[
:flags
].
index
(
"myself"
)
@info
=
info
@
slots
=
{}
@info
=
@info
.
merge
(
info
)
@
info
[
:slots
]
=
{}
slots
.
split
(
","
).
each
{
|
s
|
if
s
.
index
(
"-"
)
start
,
stop
=
s
.
split
(
"-"
)
...
...
@@ -113,7 +113,7 @@ class ClusterNode
def
add_slots
(
slots
)
slots
.
each
{
|
s
|
@
slots
[
s
]
=
:new
@
info
[
:slots
]
[
s
]
=
:new
}
@dirty
=
true
end
...
...
@@ -121,10 +121,10 @@ class ClusterNode
def
flush_node_config
return
if
!
@dirty
new
=
[]
@
slots
.
each
{
|
s
,
val
|
@
info
[
:slots
]
.
each
{
|
s
,
val
|
if
val
==
:new
new
<<
s
@
slots
[
s
]
=
true
@
info
[
:slots
]
[
s
]
=
true
end
}
@r
.
cluster
(
"addslots"
,
*
new
)
...
...
@@ -140,7 +140,7 @@ class ClusterNode
# First step: we want an increasing array of integers
# for instance: [1,2,3,4,5,8,9,20,21,22,23,24,25,30]
slots
=
@
slots
.
keys
.
sort
slots
=
@
info
[
:slots
]
.
keys
.
sort
# As we want to aggregate adiacent slots we convert all the
# slot integers into ranges (with just one element)
...
...
@@ -167,12 +167,7 @@ class ClusterNode
end
def
info
{
:host
=>
@host
,
:port
=>
@port
,
:slots
=>
@slots
,
:dirty
=>
@dirty
}
@info
end
def
is_dirty?
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录