设为首页 收藏本站
查看: 1149|回复: 0

[经验分享] redis环境搭建

[复制链接]

尚未签到

发表于 2018-11-4 12:27:54 | 显示全部楼层 |阅读模式
  因为工作环境中有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
DSC0000.png

DSC0001.png

  linux-svnfile:/usr/local/cluster #redis-cli -p 7000
  127.0.0.1:7000>
DSC0002.png

DSC0003.png

  删除slave节点
DSC0004.png

DSC0005.png

  删除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>
  Please enter all the source node>  Type 'all' to use all the nodes as source nodes for the hash slots.

  Type 'done' once you entered all the source nodes>  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
DSC0006.png

  在删除master节点出现如下面所示的错误,是因为删除master节点之前没有删除master节点的slave节点。
DSC0007.png

  上面是在单台机器上做的集群,下面展示两台机器上做集群,其实也很简单。
  参考之前的环境编译源码到另一台机器
  在两台机器上编辑配置文件
  /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"
  启动服务
DSC0008.png

DSC0009.png

DSC00010.png

DSC00011.png

DSC00012.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630655-1-1.html 上篇帖子: Redis主从复制的HA部署 下篇帖子: Centos6.5安装redis 2.8.7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表