一, 单机版安装部署, 伪集群只需要操作前 1-8 步即可, 再往下浏览找到: 二, 单机版 - 伪集群 安装部署继续搭建, 如需设置密码参照第 10 步
1, 安装基本工具
yum install -y gcc-c++ VIM lrzsz wget
2, 创建, 进入目录
- mkdir /opt/Redis
- cd /opt/Redis
3, 下载
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
4, 解压, 查看文件
- tar zxvf Redis-5.0.5.tar.gz
- ll
5, 赋权
chmod 777 -R Redis-5.0.5
6, 进入目录, 查看文件列表
cd Redis-5.0.5
7, 编译, 安装文件
安装目录 /usr/local/Redis
make install PREFIX=/usr/local/Redis
8, 进入目录, 查看文件列表
cd /usr/local/Redis/
9, 控制台启动, 使用命令./Redis-server
bin/Redis-server
出现以下结果证明启动成功:
10, 后台启动
(1)从 Redis 解压目录复制 Redis.conf 到 Redis 安装目录
cp /opt/Redis/Redis-5.0.5/Redis.conf /usr/local/Redis/
(2)修改 Redis.conf
VIM /usr/local/Redis/Redis.conf
修改 daemonize yes
参数 | 注释 |
---|---|
port 7000 | 端口 7000,7002,7003 |
bind 本机 ip | 默认 ip 为 127.0.0.1 需要改为其他节点机器可访问的 ip 否则创建集群时无法访问对应的端口,无法创建集群 |
daemonize yes | redis 后台运行 |
pidfile /var/run/redis_7000.pid | pidfile 文件对应 7000,7001,7002 |
cluster-enabled yes | / 开启集群 把注释 #去掉 |
cluster-config-file nodes_7000.conf | 集群的配置 配置文件首次启动自动生成 7000,7001,7002 |
cluster-node-timeout 15000 | 请求超时 默认 15 秒,可自行设置 |
appendonly yes | aof 日志开启 有需要就开启,它会每次写操作都记录一条日志 |
maxmemory 7516192768 | 限制内存在 7G |
masterauth | 123lxo[9^Ki34&x |
requirepass | 123lxo[9^Ki34&x |
• 接着在另外一台机器上, 操作重复以上三步, 只是把目录改为 7003,7004,7005, 对应的配置文件也按照这个规则修改即可
如果意外主机重启了, 往集群中添加新节点
Redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.47.212:7002 192.168.91.244:7000
添加从节点
Redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.172.127:7003 192.168.83.158:7003 --cluster-slave
删除节点
Redis-cli --cluster del-node -a "123lxo[9^Ki34&x" 192.168.47.212:7005 b31ef3b428d20915248b07f1f32694e3caff8a1c
设置开机自启
- [Unit]
- Description=Redis-server
- After=network.target
- [Service]
- Type=forking
- ExecStart=/home/ec2-user/Redis-5.0.5/src/Redis-server /home/ec2-user/Redis-5.0.5/redis_cluster/7003/Redis.conf
- PrivateTmp=true
- [Install]
- WantedBy=multi-user.target
sudo systemctl enable Redis 开机自启
sudo systemctl status Redis 查看状态
在任意一个 Redis 节点的主机上执行以下命令:
Redis-cli -c -h 192.168.0.100 -p 7000 cluster info
如果有密码加
Redis-cli -c -h 192.168.0.100 -p 7000 -a "123lxo[9^Ki34&x" cluster info
列出集群节点
在任意一个 Redis 节点的主机上执行以下命令, 列出集群当前已知的所有节点(node), 以及这些节点的相关信息.
Redis-cli -c -h 192.168.68.117 -p 7000 -a "123lxo[9^Ki34&x" cluster nodes
(3)进入目录, 启动服务
- cd /usr/local/Redis/
- bin/Redis-server Redis.conf
11, 查看启动信息
ps -ef | grep Redis
12, 基本操作
/usr/local/Redis/bin/Redis-cli
13, 停止服务
Redis-cli -h localhost -p 6379(端口) shutdown // 停止服务
或者 kill -9 (pid)
二, 单机版 - 伪集群 安装部署
1, 编译安装
第三部分(单机版安装部署 1 至 8 步)
并把配置文件 Redis.conf 从 Redis 解压目录复制到 Redis 安装目录
cp /opt/Redis/Redis-5.0.5/Redis.conf /usr/local/Redis/
2, 安装基本工具
yum install -y.NET-tools wget lrzsz VIM
3, 从 Redis 解压目录复制 Redis.conf 到 Redis 安装目录
如果 /usr/local/Redis 或者 /usr/local/Redis/bin 下有 dump.rdb 文件, 则删除
- rm -rf /usr/local/Redis/dump.rdb
- rm -rf /usr/local/Redis/bin/dump.rdb
4, 创建目录 /usr/local/Redis-cluster 用来存放集群实例
mkdir /usr/local/Redis-cluster
进入目录 /usr/local/Redis-cluster
cd /usr/local/Redis-cluster
5, 创建节点目录(6 个 存放六个实例)
mkdir node1 node2 node3 node4 node5 node6
6, 复制文件(把编译安装好的实例分别复制到港创建的 6 个目录下)
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node1/
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node2/
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node3/
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node4/
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node5/
- cp -R /usr/local/Redis/*/usr/local/Redis-cluster/node6/
7, 编辑各自节点 (实例) 的配置文件(以 node1 的配置文件 Redis.conf 为例, 其他 5 个节点参照 node1)
- VIM node1/Redis.conf
- (1)daemonize yes
- (2)port 7001 #(其余节点: 7002,7003,7004,7005,7006)
- (3)pidfile /var/run/redis_7001.pid #(其余节点: 7002,7003,7004,7005,7006)Redis 以守护进程方式运行时, 系统默认会把 pid 写入 / var/run/redis_7001.pid
- (4)cluster-enabled yes #此 Redis 实例作为集群的一个节点
- (5)cluster-config-file nodes-7001.conf #(其余节点: nodes-7002,3,4,5,6.conf)集群配置文件, 系统自动维护, 不能人工编辑, 主要记录集群中有哪些节点, 状态等参数
- (6)cluster-node-timeout 15000 #节点能够失联的最大时间
分别编辑其余各个节点的配置文件, 修改各自的配置信息, 改成各自对应的端口(具体过程参照 node1).
8, 下载 Gem 文件
- wget https://rubygems.org/downloads/redis-4.1.2.gem
- (下载地址: https://rubygems.org/gems/redis/versions/4.1.2 )
赋权
chmod 777 Redis-4.1.2.Gem
9, 安装 Ruby 环境
- yum install -y Ruby
- Gem install /usr/local/Redis-cluster/Redis-4.1.2.Gem
直接安装 Gem 文件会提示 Ruby 版本太低, 需要 Ruby 版本在 2.3 以上.
解决方案:
1, 安装基本工具
yum install -y curl Ruby
2, 查看现有版本
- Ruby -v
- Ruby 2.0.0p648 (2015-12-16) [x86_64-Linux]
3, 获取 rvm.io(发现安装失败)
curl -L get.rvm.io | bash -s stable
4, 根据提示增加引用
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
或者
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
5, 再一次获取 rvm.io(成功!)
curl -L get.rvm.io | bash -s stable
6, 查找配置文件
- find / -name rvm.sh
- /etc/profile.d/rvm.sh
使配置文件生效
source /etc/profile.d/rvm.sh
7, 下载 RVM 依赖
rvm requirements
8, 再查看配置文件
find / -name rvm -print
9, 查看 rvm 列表
rvm list known
10, 安装 rvm 的 v2.4.1
rvm install 2.4.1
11, 配置环境变量
- rvm use 2.4.1
- Using /usr/local/rvm/gems/Ruby-2.4.1
- rvm use 2.4.1 --default
- Using /usr/local/rvm/gems/Ruby-2.4.1
12, 删除旧版本的 Ruby
- rvm remove 2.0.0p648
- Ruby-2.0.0p648 - #already gone
- Using /usr/local/rvm/gems/Ruby-2.4.1
13, 查看最终版本
- Ruby --version
- Ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-Linux]
再次执行
Gem install /usr/local/Redis-cluster/Redis-4.1.2.Gem
10, 使用 Gem 安装 Redis
Gem install Redis
11, 进入目录 /usr/local/Redis-cluster/ 创建启动脚本
- cd /usr/local/Redis-cluster/
- VIM start-all.sh
写入如下内容:
- /node1/bin/Redis-server Redis.conf
- /node2/bin/Redis-server Redis.conf
- /node3/bin/Redis-server Redis.conf
- /node4/bin/Redis-server Redis.conf
- /node5/bin/Redis-server Redis.conf
- /node6/bin/Redis-server Redis.conf
对启动脚本赋权
chmod 777 start-all.sh
12, 启动脚本
./start-all.sh
13, 查看启动状况
- ps -ef | grep Redis
- ps aux | grep Redis
- netstat -lntp
14, 创建集群
./Redis-cli --cluster create 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 127.0.0.1:7006 --cluster-replicas 1
说明:
- (1)Performing hash slots allocation on 6 nodes... # 代表一共有 6 个节点
- (2)Using 3 masters: # 有三个主节点 分别是端口 7001,7002,7003
- (3)Adding replica 127.0.0.1:7005 to 127.0.0.1:7001 # 端口 7005 的节点是端口 7001 节点的从节点, 以此类推
- (4)M: 014d11a25cb3ea6999bd8a3237ad27252b324c54 127.0.0.1:7001 # 前面内一串是 ID 唯一标识
- (5)slots:0-5460 (5461 slots) master # 代表当前节点的哈希槽为 0-5460, 主节点才有哈希槽, Redis 集群中内置了 16384(0-16383)个哈希槽.
- (6)yes #开始搭建
三, 客户端测试
链接 Redis 的客户端: Redis-cli
cd /usr/local/Redis-cluster/
复制脚本文件 Redis-cli
- cp /opt/Redis/Redis-5.0.5/src/Redis-cli /usr/local/Redis-cluster/
- ll
- ./Redis-cli -h 127.0.0.1 -p 7001 -c
- ./Redis-cli -h 127.0.0.1 -p 7005 -c
查看集群信息
127.0.0.1:7001> cluster info
查看节点信息
- 128.127.0.0.1:7001> cluster nodes
- 127.0.0.1:7001> info replication
- 127.0.0.1:7001> info server
说明:
(1)-h 对应的 IP 地址, 不写的话默认就是本机.
(2)-p 对应的是集群中指定实例的端口.
(3)-c 这是必须的, 代表集群启动.
(4)[9189],[4998] 是通过算法计算出的当前 key 的哈希槽, 每个节点都有对应的哈希槽范围, 存储的的数据是根据 key 的哈希槽存储到对应节点.
来源: http://blog.51cto.com/13555423/2467627