由于没有这么多台机器,使用一个云服务器同时运行六个redis服务进行模拟;
首先要安装redis,从官网下载redis的打包文件,上传到服务器/usr/local/redis-cluster目录,这里假设下载下来的redis打包文件名是redis-6.2.5.tar.gz,接下来是具体步骤:
安装redis:
1. 解包打包文件:tar -xzvf redis-6.2.5.tar.gz;
命令详解:x:解压;z:有compress属性的;v:显示过程,f:使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名.
2. 编译redis需要安装gcc编译器:yum -y install gcc-c++;
3.执行编译: make;
如果提示make: command not found,则执行yum -y install gcc automake autoconf libtool make以安装常用命令,然后再执行make.
4. 复制常用命令和配置文件:
cd redis-6.2.5
cp redis.conf ../redis-6.2.5-10
cd src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server ../../redis-6.2.5-10
5. 编辑配置文件
cd ../../redis-6.2.5-10
vim redis.conf
开启远程访问:注释bind 127.0.0.1这一行,不指定登录ip,
关闭保护模式:修改protected-mode no,
后台启动:修改daemonize yes,表示以守护进程模式启动,
6. 启动redis:./redis-server redis.conf
7. 登录redis:redis-cli -p 6379,或者远程登录
8. 设置redis开机自启动
vi /etc/rc.d/rc.local
添加如下代码
/usr/local/redis-cluster/redis-6.2.5-10/redis-server /usr/local/redis-cluster/redis-6.2.5-10/redis.conf
配置redis集群
以上面安装的redis目录为基础,cd /usr/local/redis-cluster/redis-6.2.5-10
1. 修改配置文件
vim redis.conf
修改如下配置:
port 6380
pidfile /var/run/redis_6380.pid #6380与配置的端口对应
cluster-enabled yes
cluster-config-file nodes-6380.conf #6380与配置的端口对应
2. 复制出另外5个redis实例
cd ..
cp -r redis-6.2.5-10/. redis-6.2.5-11
cp -r redis-6.2.5-10/. redis-6.2.5-20
cp -r redis-6.2.5-10/. redis-6.2.5-21
cp -r redis-6.2.5-10/. redis-6.2.5-30
cp -r redis-6.2.5-10/. redis-6.2.5-31
3. 并依次修改对应的配置文件的端口从81到85,这里不做描述,参考第一步
4. 依次启动对应的redis实例,可将下列命令写成脚本快速执行
./redis-6.2.5-10/redis-server redis-6.2.5-10/redis.conf
./redis-6.2.5-11/redis-server redis-6.2.5-11/redis.conf
./redis-6.2.5-20/redis-server redis-6.2.5-20/redis.conf
./redis-6.2.5-21/redis-server redis-6.2.5-21/redis.conf
./redis-6.2.5-30/redis-server redis-6.2.5-30/redis.conf
./redis-6.2.5-31/redis-server redis-6.2.5-31/redis.conf
4. 创建集群
./redis-cli --cluster create 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 --cluster-replicas 1
其中--cluster--replicas 1表示主从复制的比例为1:1,即一个主节点对应一个从节点
;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。
如果提示: Node 127.0.0.1:638[x] is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0,则登录到对应的redis服务,执行flushdb清除数据后,再创建。
5. 检查集群信息
redis-cli --cluster check 127.0.0.1:6380 --cluster-search-multiple-owners
至此,redis集群已经创建完毕,通过redis-cli -p 6380 -c连接任一节点即可连上集群