redis集群搭建
这是redis“三部曲”的终章了,附上前两个博客的“传送门”:redis的特性,redis入门篇。
在今天手动搭了一个集群,并不算太难,按部就班的就完事了,在此文记录一下步骤及思考。
步骤:
- 学会安装一个redis
这个并不算太难,网上一搜一大堆,就此略过。 - 接下来,我们就可以创建集群了,由于本机跑多个虚拟机较为吃力,故,在一个虚拟机上用多个端口跑redis服务搭建集群
这一步,我们在/usr/local底下创建一个redis-cluster文件夹,用于安置各个集群节点,所以在此文件夹底下再创建6个文件夹,为了方便区分,由端口号对应,分别叫做:9001/9002/9003/9004/9005/9006。 - 将原有的redis.config拷贝至端口文件夹,并进行重新编辑
需要将原有的以下内容进行修改:
port 9001(每个节点的端口号)--重要
daemonize yes --设置在后台启动,为守护进程
bind 192.168.119.131(绑定当前机器 IP)
dir /usr/local/redis-cluster/9001/data/(数据文件存放位置)--这里默认的是将其放在同级目录底下,这里进行了一个修改,将其放在同级的data目录底下
pidfile /var/run/redis_9001.pid(用于存放进程识别号的一个文件,为了区别多个集群节点的进程,用端口号做区分放于多个文件中)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes9001.conf(集群配置文件的名字)
cluster-node-timeout 15000
4.这几个配置文件通过redis-server启动,一个配置文件对应一个线程,用ps -el | grep redis查看redis的进程是否存在:
5.此时再用server-cli启动一个客户端试试,发现连接成功,但是无法添加记录:
6.以上说明,我们虽然配置好了集群的配置文件,并启动了所有的节点服务,但是集群尚未搭建完成,这时,我们需要安装集群所需的软件:
由于集群需要用到ruby命令,故我们安装如下相关软件,命令和截图:
yum install ruby
yum install rubygems
gem install redis
7、再敲上命令如下,我们就完成了集群的全部搭建任务了。
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.119.131:9001 192.168.119.131:9002 192.168.119.131:9003 192.168.119.131:9004 192.168.119.131:9005 192.168.119.131:9006
redis-trib.rb是一个可执行文件,--replicas表示主节点比上从节点的比例,1代表主节点:从节点为1:1,再跟上所有集群节点的ip地址加上端口号,命令就结束了。
默认情况下,前三个节点作为主节点,后三个节点作为从节点。
理解:
- redis集群有slot槽的概念,一个集群预先有16384个slot,slot并不一定是均匀分配在每一个主节点上。
- 当连接上一个主节点时,put key-value的操作会根据一定的算法,将key放入对应的slot里,所以很有可能会连着一个主节点,却将key塞到另外一个主节点上。