背景:安装redis-5.0.5,使用redis-cli搭建redis集群,并扩缩分片。
安装redis-5.0.5
1、官网下载redis-5.0.5.tar.gz,并上传到服务器上。
2、我这里将redis-5.0.5.tar.gz上传至/usr/local/src目录下。
[root@localhost src]# ll /usr/local/src/redis-5.0.5.tar.gz
-rw-r--r--. 1 root root 1975750 May 25 00:13 /usr/local/src/redis-5.0.5.tar.gz
3、解压redis-5.0.5.tar.gz。
[root@localhost src]# tar -zxf redis-5.0.5.tar.gz
4、进入解压后的目录,进行安装,默认下redis相关的安装文件会存储在/usr/local/bin 这个目录下。如果想自定义安装路径,可以将make install 替换为:make PREFIX=目录 install
[root@localhost src]# cd redis-5.0.5/
然后输入make && make install 进行编译安装:
[root@localhost redis-5.0.5]# make && make install
.................
make[1]: Leaving directory `/usr/local/src/redis-5.0.5/src'
[root@localhost redis-5.0.5]#
5、查看redis版本,可以看到redis已经安装成功
[root@localhost ~]# redis-server --version
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=e53c2b8a69fecf7d
创建redis实例
redis集群默认至少需要3主3从,所以至少需要6个节点,在生成环境中,分片的主从都不是在一台机器上的,这也是分片的意义,这里是只是简单的搭建,所以只是在一台机器上创建了6个redis实例进行搭建(我这里搭建集群的机器ip地址是:192.168.222.133)。
1、创建6个redis实例,所以需要6个端口,我这里创建了6个目录,用作redis实例的数据和配置文件存放的目录,数据目录最好创建在数据盘。
[root@localhost ~]# mkdir /data/7000
[root@localhost ~]# mkdir /data/7001
[root@localhost ~]# mkdir /data/8000
[root@localhost ~]# mkdir /data/8001
[root@localhost ~]# mkdir /data/9000
[root@localhost ~]# mkdir /data/9001
2、创建redis实例的配置文件,将该配置文件拷贝到其它5个目录,且文件名、文件内容中的端口替换为对应端口即可。这些配置是简单的配置,需要添加其它参数的话自行添加。
[root@localhost 7000]# cat /data/7000/redis-7000.conf
# 修改为后台启动
daemonize yes
#bind
bind 192.168.222.133
# 修改端口号
port 7000
# 指定数据文件存储位置
dir /data/7000/
# 开启集群模式
cluster-enabled yes
# 集群节点超时间
cluster-node-timeout 15000
# 关闭保护模式
protected-mode no
# 开启aof模式持久化
appendonly yes
# 设置连接Redis需要密码123(选配)
#requirepass 123456
# 设置Redis节点与节点之间访问需要密码123(选配)
#masterauth 123456
3、配置文件拷贝、修改完成后,启动6个redis实例。
[root@localhost ~]# redis-server /data/7000/redis-7000.conf
[root@localhost ~]# redis-server /data/7001/redis-7001.conf
[root@localhost ~]# redis-server /data/8000/redis-8000.conf
[root@localhost ~]# redis-server /data/8001/redis-8001.conf
[root@localhost ~]# redis-server /data/9000/redis-9000.conf
[root@localhost ~]# redis-server /data/9001/redis-9001.conf
4、查看redis实例启动情况,可以看到6个实例都正常。
[root@localhost ~]# ps aux | grep redis | grep -v grep
root 2887 0.1 0.1 163216 11776 ? Ssl 23:42 0:00 redis-server 192.168.222.133:7000 [cluster]
root 2892 0.2 0.1 154000 7684 ? Ssl 23:42 0:00 redis-server 192.168.222.133:7001 [cluster]
root 2911 0.1 0.1 154000 7684 ? Ssl 23:43 0:00 redis-server 192.168.222.133:8000 [cluster]
root 2920 0.1 0.1 154000 7684 ? Ssl 23:43 0:00 redis-server 192.168.222.133:8001 [cluster]
root 2929 0.1 0.1 154000 7684 ? Ssl 23:43 0:00 redis-server 192.168.222.133:9000 [cluster]
root 2938 0.1 0.1 154000 7684 ? Ssl 23:43 0:00 redis-server 192.168.222.133:9001 [cluster]
搭建redis集群
1、利用6个redis实例,搭建3主3从redis集群,使用以下命令搭建redis集群。
搭建集群的命令:redis-cli --cluster create 192.168.222.133:7000 192.168.222.133:8000 192.168.222.133:9000 192.168.222.133:7001 192.168.222.133:8001 192.168.222.133:9001 --cluster-replicas 1
#--cluster-replicas 1 表示从库为1个实例
#这里控制不了谁是主谁是从,但是如果有三台机器的话,主从默认不会在一个机器上
这是我执行命令后的输出情况,可以看到搭建集群成功,也分配了对应的槽位:
[root@localhost ~]# redis-cli --cluster create 192.168.222.133:7000 192.168.222.133:8000 192.168.222.133:9000 192.168.222.133:7001 192.168.222.133:8001 192.168.222.133:9001 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.222.133:8001 to 1