前言本文收集整理了Redis集群搭建的网络文章、网站、自己的经验。水平有限,只分享环境搭建。本文分为以下几个部分:Redis安装Rvm安装和替换源RvmRuby安装、使用、卸载RubyGems升级、替换源、安装rediscluster配置结果测试请按照以上步骤查看本文说明:仅供学习使用,如供网上使用,本人不承担任何责任。如果您有任何问题,请在下方留言。这篇文章中的一些命令没有sudo,因为我使用的是root权限。Redis安装编译安装wgethttp://download.redis.io/releases/redis-4.0.10.tar.gztarxzfredis-4.0.10.tar.gzcdredis-4.0.10makePREFIX=/usr/local/redis安装注意:如果你不想使用Redis作为服务,你已经安装了Redis作为服务参考:RedisQuickStartCreateadirectorywheretostoreyourRedisconfigfilesandyourdata:(有道词典:创建一个目录到存放Redis的配置文件和数据:)#这只是一个目录结构,不用担心为什么没有,往下看,一步步来[root@amor~]#cd/usr/local/redis[root@amorredis]#tree.├──bin#编译安装指定目录后自动生成目录和文件│├──redis-benchmark│├──redis-check-aof│├──redis-check-rdb│├──redis-cli│├──redis-sentinel->redis-server│└──redis-server├──conf#存放自己创建的配置文件和自己创建的单个Redis配置文件的目录│└──6379.conf└──data#自建Redis数据存放目录和单个Redis服务数据存放目录└──63794个目录,7个文件注:cp/usr/src/redis-4.0.10/src/redis-trib.rb/usr/local/redis/bin/稍后创建集群以使用将您将在Redis发行版中的utils目录下找到的init脚本复制到/etc/init.d中。我们建议使用您所在港口的名称来调用它重新运行这个Redis实例。例如:(有道词典:将Redis发行版中utils目录下的init脚本复制到/etc/init.d中,建议使用运行该Redis实例的端口名来调用,例如:)sudocputils/redis_init_script/etc/init.d/redis_6379编辑init脚本。(有道词典:编辑初始化脚本。)#!/bin/sh#chkconfig23459025#linux启动设置2345runlevel90启动优先级(参考memcachedhead/etc/rc.d/rc3.d/S90memcached)25关闭优先级(参考memcached)#简单Redisinit.d脚本设计用于Linux系统#,因为它确实使用/proc文件系统。###BEGININITINFO#Provides:redis_6379#Default-Start:2345#Default-Stop:016#Short-Description:Redisdatastructureserver#描述:Redis数据结构服务器。看https://redis.io###ENDINITINFOREDISPORT=6379EXEC=/usr/local/redis/bin/redis-server#修改为自己的可执行文件所在目录CLIEXEC=/usr/local/redis/bin/redis-cli#切换到可执行文件所在目录PIDFILE=/var/run/redis_${REDISPORT}.pid#默认即可CONF="/usr/local/redis/conf/${REDISPORT}.conf"#修改为自己的配置文件存放目录···省略···esac开始修改redis.conf一定要根据自己使用的端口修改REDISPORT。pid文件路径和配置文件名都取决于端口号。使用的端口会相应地重新分配。pid文件路径和配置文件名都取决于端口号。)sudocpredis.conf/usr/local/redis/conf/6379.conf(修改成自己定义的目录,参考上面你redis解压目录下src目录下的目录结构redis.conf)sudomkdir/usr/local/redis/data/6379(修改为自己定义的目录。参照上述目录结构)编辑配置文件,确保进行如下修改:(有道词典:编辑配置文件,确保进行如下修改:)设置daemonize为yes(默认设置为no).(需要修改是)将pidfile设置为/var/run/redis_6379.pid(需要修改端口)。(默认)相应地更改端口。在我们的示例中不需要它,因为默认端口已经是6379。(默认就是这样,在设置集群时,您需要复制配置文件并重置端口)设置您的首选日志级别。(default)Setthelogfileto/var/log/redis_6379.log(default好像是空的,需要修改)Setthedirto/var/redis/6379(很重要的一步!)(redis数据存放目录,需要修改位置自定义路径)注:上面的意思是让你修改/usr/local/redis/conf/6379.conf,用vim打开,搜索上面的关键字,参考下面的设置(如果都步骤粘贴复制,直接修改为如下:0.0):port6379daemonizeyespidfile/var/run/redis_6379.pidloglevelnoticelogfile"/var/log/redis_6379.log"dir/usr/local/redis/data/6379Finally使用以下命令将新的Redisinit脚本添加到所有默认运行级别:(有道词典:最后,使用以下命令将新的Redisinit脚本添加到所有默认运行级别:)#ubuntusudoupdate-rc.dredis_6379defaults#centoschkconfig--addredis_6379大功告成!现在您可以尝试运行实例:sudo/etc/init.d/redis_6379starttestRedisstop,startyuminstall/etc/init.d/redis-serverstop/etc/init.d/redis-serverstart/etc/init.d/redis-server三种方式重启源码安装sudo/etc/init.d/redis_6379start/usr/local/redis/bin/redis-serverredis.conf#注意这里默认为:配置文件路径redis-cli-h127.0.0.1-p6379shutdown注意:如果只是停止本地redis,请执行:redis-clishutdownforceterminationkill-9进程号pkillredisRvm安装替换源curl-sSLhttps://rvm。io/mpapis.asc|gpg2--import-curl-Lget.rvm.io|bash-sstablervmusergemsets#创建用户配置目录。更改源时,需要将配置写入db文件信息echo"ruby_url=https://cache.ruby-china.org/pub/ruby">~/.rvm/user/db#ReplaceSource#注意:以上还有一些问题,请使用以下方法安装gpg--keyserverhkp://keys.gnupg.net--recv-keys409B6B1796C275462A1703113804BB82D39DC0E3curl-sSLhttps://get.rvm.io|bash-sstableusermod-aroot-Grvmsource/etc/profile.d/rvm。sh#关闭shell窗口,重新打开rvmusergemsetsecho"ruby_url=https://cache.ruby-china.org/pub/ruby">~/.rvm/user/dbRvmRubyinstall,use,uninstallyum-yremoveruby??#卸载centosyum安装的1.8版本#rvminstallRubyrvmlistknownrvminstallruby??-headrvmuseruby??-head--default#检查ruby-vgem-v#rvm卸载Rubyrvm卸载ruby#这里测试有无版本的RubyGemsruby-china.com/--removehttps://rubygems.org/gemsources-lgeminstallredis集群配置注:以下内容是我自己参考这篇博文,自己熟悉Redis后的配置过程安装,可以参考NrwLm-搭建Redis集群的详细指南。打开Redisclustercd/usr/local/redis/confcp6379.confredis.conf.default#作为其他集群配置文件的蓝本sudovimredis.conf.default修改内容如下bind192.168.2.123#绑定当前机器IPcluster-enabledyes#取消注释,启动集群模式cluster-config-filenodes-6379.conf#取消注释,修改为/usr/local/redis/data/6379/nodes-6379.conf(如果需要重新建立cluster-node-timeout15000#uncommentappendonlyyes#取消注释appendonlyyes#改成notoyes创建配置文件cd/usr/local/redis/confecho9001.conf9002.conf9003.conf9004.conf9005.conf9006.conf|xargs-n1cp-vredis.conf.defaultsed-i's/6379/9001/g'9001.confsed-i's/6379/9002/g'9002.confsed-i's/6379/9003/g'9003.confsed-i's/6379/9004/g'9004.confsed-i's/6379/9005/g'9005.confsed-i's/6379/9006/g'9006。conf创建数据存储文件cd/usr/local/redis/datamkdir-p900190029003900490059006#后面可能需要删除这个文件下的文件重建集群,所以删除命令也写rm-rf900*/*启动Redis集群节点/usr/local/redis/bin/redis-server/usr/local/redis/conf/9001.conf/usr/local/redis/bin/redis-server/usr/local/redis/conf/9002.conf/usr/local/redis/bin/redis-server/usr/local/redis/conf/9003.conf/usr/local/redis/bin/redis-服务器/usr/local/redis/conf/9004.conf/usr/local/redis/bin/redis-server/usr/local/redis/conf/9005.conf/usr/local/redis/bin/redis-server/usr/local/redis/conf/9006.conf创建集群/usr/local/redis/bin/redis-trib.rbcreate--replicas1192.168.2.123:9001192.168.2.123:9002192.168.2.123:9003192.168.2.123:9004192.168.2.123:9005192.168.2.123:9006测试执行命令:/usr/local/redis/bin/redis-cli-c-h192.168.2.123-p9001问题总结如果遇到超时,请检查你的防火墙,安塔的人要特别注意。请先到安全释放9001:9006端口。RedisclusterWaiting集群加入一直在等待。redis集群不仅需要开启redis客户端连接的端口,还需要开启集群总线端口,集群总线端口连接redis客户端的端口+10000redis/usr/bin/env:ruby:thereisnosuchfileordirectoryExecutethiscommandrvmgetstable--auto-dotfiles,orexecutenvmlist有详细的错误描述(查资料说,Donotuservmtoinstallruby??online)这是我自己解决的#将其添加到/etc/profile文件(放在最后)rvmuseruby??-2.6.0-preview2帮助网站:下载RubyGemsv2.7.7-2018年5月18日安装RVMRubyGems-RubyChinaRedis下载
