您的位置:首页 > 数据库 > Redis

redis的管理工具

2016-03-23 17:00 706 查看
phpredisadmin工具

rdbtools管理工具

saltstack管理redis

通过codis完成redis管理

一:phpredisadmin工具:类似于mysqladmin管理mysql一样

安装环境:

[root@node5 ~]# yum install httpd php php-redis -y


下载管理包:

[root@node5 html]# git clone https://github.com/erikdubbelboer/phpRedisAdmin.git[/code] 
更改名称并解决依赖:

[root@node5 html]# mv phpRedisAdmin admin
[root@node5 html]# cd admin
[root@node5 admin]# git clone https://github.com/nrk/predis.git vendor #解决依赖包


启动http,启动前确认80端口没有被占用,如果被占用可以修改监听的默认端口为80以为的其他端口:

[root@node5 html]# /etc/init.d/httpd  restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [  OK  ]
[root@node5 html]# chkconfig  httpd on


访问http://ServerIP/admin:

[root@node5 codis]# make gotest
GOPATH=`godep path`:$GOPATH go test ./pkg/... ./cmd/...
ok      github.com/CodisLabs/codis/pkg/models    17.324s
ok      github.com/CodisLabs/codis/pkg/proxy    6.296s
ok      github.com/CodisLabs/codis/pkg/proxy/redis    1.338s
ok      github.com/CodisLabs/codis/pkg/proxy/router    0.654s
?       github.com/CodisLabs/codis/pkg/utils    [no test files]
?       github.com/CodisLabs/codis/pkg/utils/assert    [no test files]
?       github.com/CodisLabs/codis/pkg/utils/atomic2    [no test files]
ok      github.com/CodisLabs/codis/pkg/utils/bytesize    0.002s
?       github.com/CodisLabs/codis/pkg/utils/errors    [no test files]
?       github.com/CodisLabs/codis/pkg/utils/log    [no test files]
?       github.com/CodisLabs/codis/pkg/utils/trace    [no test files]
?       github.com/CodisLabs/codis/cmd/cconfig    [no test files]
?       github.com/CodisLabs/codis/cmd/proxy    [no test files]


make gotest 测试过程
执行全部指令后,会在 bin 文件夹内生成 codis-config、codis-proxy、codis-server三个可执行文件。另外, bin/assets 文件夹是 codis-config 的 dashboard http 服务需要的前端资源, 需要和 codis-config 放置在同一文件夹下)

[root@node5 codis]# cd bin/
[root@node5 bin]# ls
assets  codis-config  codis-proxy  codis-server


可执行文件使用方式:

[root@node5 bin]# ./codis-config  -h


[root@node5 bin]# ./codis-config  -h
usage: codis-config  [-c <config_file>] [-L <log_file>] [--log-level=<loglevel>]
<command> [<args>...]
options:
-c   #配置文件地址
-L   #日志输出文件地址
--log-level=<loglevel>   #输出日志级别 (debug < info (default) < warn < error < fatal)

commands:
server            #redis 服务器组管理
slot              #slot 管理
dashboard         #启动 dashboard 服务
action            #事件管理 (目前只有删除历史事件的日志)
proxy             #proxy 管理


[root@node5 bin]# ./codis-proxy -h

$ bin/codis-proxy -h
usage: codis-proxy [-c <config_file>] [-L <log_file>] [--log-level=<loglevel>] [--cpu=<cpu_num>] [--addr=<proxy_listen_addr>] [--http-addr=<debug_http_server_addr>]

options:
-c    #配置文件地址
-L    #日志输出文件地址
--log-level=<loglevel>   #输出日志级别 (debug < info (default) < warn < error < fatal)
--cpu=<cpu_num>      #proxy占用的 cpu 核数, 默认1, 最好设置为机器的物理cpu数的一半到2/3左右
--addr=<proxy_listen_addr>       #proxy 的 redis server 监听的地址, 格式 <ip or hostname>:<port>, 如: localhost:9000, :9001
--http-addr=<debug_http_server_addr>    #proxy 的调试信息启动的http server, 可以访问 http://debug_http_server_addr/debug/vars[/code] 
[root@node5 bin]# ./codis-server  -h


[root@node5 bin]# ./codis-server  -h
Usage: ./redis-server [/path/to/redis.conf] [options]
./redis-server - (read config from stdin)  #指定redis配置文件
./redis-server -v or --version  #显示版本
./redis-server -h or --help #获取帮助
./redis-server --test-memory <megabytes> #单位为字节

Examples:
./redis-server (run the server with default conf)
./redis-server /etc/redis/6379.conf
./redis-server --port 7777
./redis-server --port 7777 --slaveof 127.0.0.1 8888
./redis-server /etc/myredis.conf --loglevel verbose


开始部署:

[root@node5 bin]# cd ..
[root@node5 codis]# vim config.ini

zk=192.168.10.205:2181
dashboard_addr=192.168.10.205:18087


配置并启动 dashboard:

[root@node5 codis]# cp config.ini bin/ #将修改后的文件复制至bin目录,因为bin里面你的命令默认读取当前目录的config.ini文件,或可以使用 -c指定也可以

[root@node5 bin]# ./codis-config dashboard & #该命令会启动 dashboard

启动成功就可以通过 http://ServerIP:18087访问


初始化 slots:

执行.
/codis-config slot init
,该命令会在zookeeper上创建slot相关信息,如果提示已经初始化可以加 -f 强制

[root@node5 bin]# ./codis-config slot init -f
{
"msg": "OK",
"ret": 0
}


启动 Codis Redis:

如果已经启动可以跳过,如果还未启动就执行:

[root@node5 bin]# /etc/init.d/redisd  start


添加 Redis Server Group:

每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数


添加一个master:

[root@node5 bin]# ./codis-config server add 1 localhost:6379 master
{
"msg": "OK",
"ret": 0
}


为master添加一个slave:

[root@node5 bin]# ./codis-config server add 1 192.168.10.205:7009 slave

[root@node5 bin]# ./codis-config  server add 1 192.168.10.205:7009  slave
2016/03/22 03:37:27 main.go:154: [PANIC] run sub-command failed
[error]: http status code 500, ERR SLAVEOF not allowed in cluster mode.
4   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/utils.go:66
main.callApi
3   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/server_group.go:94
main.runAddServerToGroup
2   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/server_group.go:54
main.cmdServer
1   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:87
main.runCommand
0   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:152
main.main
... ...
[stack]:
0   /opt/gopath/src/github.com/CodisLabs/codis/cmd/cconfig/main.go:154
main.main
... ...


查看列表信息:

[root@node5 bin]# ./codis-config  server list
[
{
"id": 1,
"product_name": "test",
"servers": [
{
"addr": "localhost:6379",
"group_id": 1,
"type": "master"
},
{
"addr": "192.168.10.205:7009",
"group_id": 1,
"type": "slave"
}
]
}
]


在浏览器验证:



设置 server group 服务的 slot 范围:

Codis 采用 Pre-sharding 的技术来实现数据的分片, 默认分成 1024 个 slots (0-1023), 对于每个key来说, 通过以下公式确定所属的 Slot Id : SlotId = crc32(key) % 1024 每一个 slot 都会有一个且必须有一个特定的 server group id 来表示这个 slot 的数据由哪个 server group 来提供:

如:

设置编号为[0, 511]的 slot 由 server group 1 提供服务, 编号 [512, 1023] 的 slot 由 server group 2 提供服务

[root@node5 bin]# ./codis-config slot range-set 0 511 1 online
{
"msg": "OK",
"ret": 0
}
[root@node5 bin]# ./codis-config slot range-set 512 1023 2 online
{
"msg": "OK",
"ret": 0
}


启动 codis-proxy:

[root@node5 bin]# ./codis-proxy -c config.ini -L ./log/proxy.log  --cpu=8 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000

_____  ____    ____/ /  (_)  _____
/ ___/ / __ \  / __  /  / /  / ___/
/ /__  / /_/ / / /_/ /  / /  (__  )
\___/  \____/  \__,_/  /_/  /____/


刚启动的 codis-proxy 默认是处于 offline状态的, 然后设置 proxy 为 online 状态, 只有处于 online 状态的 proxy 才会对外提供服务

[root@node5 bin]# ./codis-config -c config.ini proxy online proxy_1
{
"msg": "OK",
"ret": 0
}


注:命令格式为./
codis-config -c config.ini proxy online <proxy_name> <---- proxy的id, 如 proxy_1,可以在浏览器看到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: