redis集群搭建
阅读目录
- 1. 准备ruby环境
- 2. 目录 & 配置文件
- 3. 集群操作
- redis 集群
- ruby
- redis版本:redis-4.0.11
- os:centos 7
- ruby版本:2.3.5
- ruby-redis:4.0.2
# 可能需要的一些准备;非必须;必须的为 c、c++、zlibyum install gcc-c++ patch readline readline-devel zlib zlib-develyum install libyaml-devel libffi-devel openssl-devel makeyum install bzip2 autoconf automake libtool bison iconv-devel sqlite-devel
centos 7 安装 redis
# 下载 & 编译cd /optwget http://download.redis.io/releases/redis-4.0.11.tar.gztar xzf redis-4.0.11.tar.gzcd redis-4.0.11make# 编译后的可执行文件输出到 ./src下# 创建软连接ln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-serverln -s /opt/redis-4.0.11/src/redis-cli /usr/bin/redis-cliln -s /opt/redis-4.0.11/src/redis-trib.rb /usr/bin/redis-trib.rb# 测试redis-server -vredis-cli -v
集群
redis集群使用redis提供的redis-trib.rb
ruby 脚本进行操作,因此需要先准备ruby环境。
回到顶部
1. 准备ruby环境
yum上的ruby版本2.0,不能直接使用yum上的版本。
这里使用2.3.5,官网tar.gz包,make方式安装;其他版本同理。
# 安装rubycd /optwget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gztar zxf ruby-2.3.5.tar.gzcd ruby-2.3.5./configure --prefix=/opt/rubymake && make install# 软连接ln -s /opt/ruby/bin/ruby /usr/bin/rubyln -s /opt/ruby/bin/gem /usr/bin/gem# 测试ruby -vgem -v# 安装ruby gem redis依赖wget http://rubygems.org/downloads/redis-4.0.2.gemgem install -l redis-4.0.2.gem# gem 卸载: gem uninstall redis# gem list: gem list --local# 测试redis-trib.rb
zlib 问题
- 报错如下:
[root@mongo-dev opt]# gem install -l redis-4.0.2.gem ERROR: Loading command: install (LoadError)cannot load such file -- zlibERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
- 解决:
# 安装zlib依赖yum install zlib-devel# 集成zlib库到ruby环境cd /opt/ruby-2.3.5/ext/zlib/ruby extconf.rbmake && make install
直接使用gem安装ruby redis依赖
gem install redis
回到顶部
2. 目录 & 配置文件
- 创建目录
集群至少有3台机器,每台机器需要1个备份节点,至少需要6个服务节点。这里用一台机器模仿6个节点,直接创建6个目录。
# 所有节点/data/redis├── 7000├── 7001├── 7002├── 7003├── 7004└── 7005# 单个节点目录结构;logs需要提前创建/data/redis/7000├── logs└── redis.conf
- 需要修改的配置文件
# 注释掉所有bind,对外网开放# bind 127.0.0.1port 7000daemonize yespidfile /var/run/redis_7000.pidlogfile "/data/redis/7000/logs/log.log"dir /data/redis/7000# 开启密码,密码:attaboyrequirepass attaboymasterauth attaboy# 限制客户端连接maxclients 10000appendonly yes# 集群cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 15000
将配置文件复制到其他文件夹,并修改端、文件夹、pid信息
port 7000pidfile /var/run/redis_7000.pidlogfile "/data/redis/7000/logs/log.log"dir /data/redis/7000
直接使用sed修改
cd 7001sed -i 's/7000/7001/g' redis.conf # 比较diff redis.conf ../7000/redis.conf
或者:以7000为源,直接复制
for i in {7001..7005};do cp -r 7000/ $i;sed -i 's/7000/'$i'/g' ./$i/redis.conf;done
启动
# 启动单台redis-server /data/redis/7000/redis.conf# 关闭单台redis-cli -p 7000 -a attaboy shutdown# 启动全部cd /data/redisfor i in {7000..7005};do redis-server ./$i/redis.conf;done# 关闭全部pids=`ps aux|grep "redis-server"|grep -v grep|awk '{print $2}'`;kill $pids# 查看ps aux|grep redis
集群
# 修改 vim /opt/redis-4.0.11/src/redis-trib.rb # 增加密码 99 @r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "attaboy")# 创建集群,此处ip一定要用外网可访问的ip,千万不可用localhost、127.0.0.1;此处仅演示,不可直接复制。redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
使用
redis-cli -c -p 7000auth attaboyset kkkk 111get kkkk
回到顶部
3. 集群操作
# 对集群进行重新分片;只需要指定集群中其中一个节点的地址redis-trib.rb reshard 127.0.0.1:7000# 添加新节点到集群; add-node 后面第一个为新增节点,后面为已存在的节点redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
一键安装脚本
将上面的分布安装集合成一个一键安装脚本。
#!/bin/sh# centos 6.5 install redis & ruby# install dir /opt/# ========================== lib ==========================yum install zlib-devel# ========================== redis ==========================cd /optwget http://download.redis.io/releases/redis-4.0.11.tar.gztar xzf redis-4.0.11.tar.gzcd redis-4.0.11makeln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-serverln -s /opt/redis-4.0.11/src/redis-cli /usr/bin/redis-cliln -s /opt/redis-4.0.11/src/redis-trib.rb /usr/bin/redis-trib.rb# for test# redis-server -v# redis-cli -v# ========================== ruby ==========================cd /optwget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gztar zxf ruby-2.3.5.tar.gzcd ruby-2.3.5# for check# ./configure --prefix=/opt/rubymake && make installln -s /opt/ruby/bin/ruby /usr/bin/rubyln -s /opt/ruby/bin/gem /usr/bin/gem# for test# ruby -v# gem -v# ========================== ruby-redis ==========================cd /optwget http://rubygems.org/downloads/redis-4.0.2.gemgem install -l redis-4.0.2.gem# for test# redis-trib.rb
windows 桌面程序
参考
回到顶部
redis 集群
回到顶部
ruby
赞 (0)