扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎样进行redis环境搭建,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都网站设计、网站建设、app软件开发公司、小程序制作、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
因为工作环境中有redis,所以对redis进行了学习,当然首先就是从搭建环境开始,下面是我对于搭建redis环境的记录。
系统是SuSE 11 sp2,
软件环境如下所示:
linux-svnfile:/home/apps/redis # ls
redis-3.0.0.gem ruby-1.9.2-p290.tar.gz zlib-1.2.7.tar.gz
redis-3.0.0.tar.gz rubygems-2.4.6.tgz
redis.conf zlib-1.2.6.tar.gz
安装基础环境:
linux-svnfile:/home/apps/redis # tar -zxf zlib-1.2.6.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src/zlib-1.2.6 # ./configure --prefix=/usr/local/zlib
linux-svnfile:/usr/local/src/zlib-1.2.6 # make && make install
linux-svnfile:/home/apps/redis # tar -zxf ruby-1.9.2-p290.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # ./configure --prefix=/usr/local/ruby
linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # make && make install
linux-svnfile:/usr/local/ruby # ln -s /usr/local/ruby/bin/ruby /usr/local/bin
linux-svnfile:/home/apps/redis # tar xf rubygems-2.4.6.tgz -C /usr/local/src
linux-svnfile:/usr/local/src # mv rubygems-2.4.6 ../gem
linux-svnfile:/usr/local/gem # ruby setup.rb
linux-svnfile:/usr/local/gem # cp bin/gem /usr/local/bin/
linux-svnfile:/home/apps/redis # gem install -l redis-3.0.0.gem
Successfully installed redis-3.0.0
Installing ri documentation for redis-3.0.0
Done installing documentation for redis after 0 seconds
1 gem installed
linux-svnfile:/home/apps/redis # tar -zxf redis-3.0.0.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src # mv redis-3.0.0 ../redis
linux-svnfile:/usr/local/redis # make
至此基础环境搭建完成
下面进行集群的搭建
linux-svnfile:/usr/local/redis # cp src/redis-server /usr/local/bin/
linux-svnfile:/usr/local/redis # cp src/redis-cli /usr/local/bin/
linux-svnfile:/usr/local/redis # cp src/redis-trib.rb /usr/local/bin
linux-svnfile:/usr/local/redis # mkdir -p /usr/local/cluster/{7000..7005}
linux-svnfile:/usr/local/redis # vi redis.conf
daemonize yes
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7000
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7001
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7002
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7003
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7004
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7005
这里需要注意的是文件名对应文件里端口的配置,例如7001文件下的port参数需要改为7001,其他一样做修改。
linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf
linux-svnfile:/usr/local/redis # ps -ef | grep redis
root 15590 1 0 18:52 ? 00:00:00 redis-server *:7000 [cluster]
linux-svnfile:/usr/local/redis # 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
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: [ERR] Sorry, can't connect to node 127.0.0.1:7001
You have new mail in /var/mail/root
linux-svnfile:/usr/local/cluster/7000 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7000 # cd ../7001
linux-svnfile:/usr/local/cluster/7001 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7001 # cd ../7002
linux-svnfile:/usr/local/cluster/7002 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7002 # cd ../7003
linux-svnfile:/usr/local/cluster/7003 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7003 # cd ../7004
linux-svnfile:/usr/local/cluster/7004 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7004 # cd ../7005
linux-svnfile:/usr/local/cluster/7005 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7005 # ps -ef | grep redis
root 17575 1 0 20:05 ? 00:00:00 redis-server *:7000 [cluster]
root 17590 1 0 20:06 ? 00:00:00 redis-server *:7001 [cluster]
root 17604 1 0 20:06 ? 00:00:00 redis-server *:7002 [cluster]
root 17612 1 0 20:06 ? 00:00:00 redis-server *:7003 [cluster]
root 17616 1 0 20:06 ? 00:00:00 redis-server *:7004 [cluster]
root 17624 1 0 20:06 ? 00:00:00 redis-server *:7005 [cluster]
像是上面在启动服务时需要注意切换到相应的配置文件的目录下,不然相应端口的服务无法启动,例如我之前在/usr/local/redis目录下启动后只有7000对应的服务启动了。
linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf
linux-svnfile:/usr/local/redis # ps -ef | grep redis
root 15144 19064 0 18:37 pts/0 00:00:00 vi redis.conf
root 15590 1 0 18:52 ? 00:00:00 redis-server *:7000 [cluster]
root 15616 19443 0 18:52 pts/1 00:00:00 grep redis
linux-svnfile:/usr/local/cluster #redis-cli -p 7000
127.0.0.1:7000>
删除slave节点
删除master节点
linux-svnfile:/usr/local/redis # redis-trib.rb reshard 127.0.0.1:7001
How many slots do you want to move (from 1 to 16384)? 5461
What is the receiving node ID? 42929649e533ec8aad7cbb81f204f04c849d4bff
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1: 6fe9561e605b7ee85e67a2557f7fb641f482afb4
Source node #2:done
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
说明:
5461表示要删除master所有的slot数量
What is the receiving node ID是指将7000的slot迁移的节点7001的node-id
Source node #1是指要删除的master的node-id
下面可以看到7000的slot为0,而7001多了4561
在删除master节点出现如下面所示的错误,是因为删除master节点之前没有删除master节点的slave节点。
上面是在单台机器上做的集群,下面展示两台机器上做集群,其实也很简单。
参考之前的环境编译源码到另一台机器
在两台机器上编辑配置文件
/usr/local/redis # vi redis.conf
daemonize yes
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
cluster-config-file nodes-7001.conf
分别创建目录和文件
linux-svnfile:/usr/local/redis # mkdir -p/usr/local/cluster/{7001..7003}
localhost:/usr/local/redis # mkdir -p/usr/local/cluster/{8001..8003}
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7001
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7002
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7003
localhost:/usr/local/redis # cp redis.conf../cluster/8001
localhost:/usr/local/redis # cp redis.conf../cluster/8002
localhost:/usr/local/redis # cp redis.conf../cluster/8003
修改对应目录的配置文件其中port 和cluster-config-file分别对应各自的目录名,可使用sed命令做修改
sed -i "s/7001/7002/g"
启动服务
关于怎样进行redis环境搭建问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流