redis的管理工具
2016-03-23 17:00
706 查看
phpredisadmin工具
rdbtools管理工具
saltstack管理redis
通过codis完成redis管理
一:phpredisadmin工具:类似于mysqladmin管理mysql一样
安装环境:
下载管理包:
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.inizk=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,可以在浏览器看到
相关文章推荐
- Redis 学习 ---- 9.数据库
- Puppet模块(九):redis模块
- redis学习总结(未完成)
- mac下,redis的安装与配置
- Redis介绍
- redis 发布订阅
- 【Python】redis sentinel主从切换(failover)
- Redis介绍及常用命令
- redis的下载
- 基于订阅/发布模式的简易聊天室实现(java+redis)
- Redis初学笔记
- nginx redis tomcat 集群中用到的命令
- Redis集群客户端及高可用解决方案
- Redis学习之持久化方式和配置
- Redis命令总结
- redis主从的配置和使用
- redis3.0.0 集群安装详细步骤
- centos redis安装使用
- redis安装步骤
- 10 个 Redis 建议/技巧