Linux服务器redis单机版和集群版搭建
1.linux下下载redis源码
Redis下载官网:https://redis.io/download
Linux的下载命令,根据需要版本进行下载即可:
[[email protected] bin]# wgethttp://download.redis.io/releases/redis-4.0.8.tar.gz
2.linux下redis单机版搭建
2.1 redis需要c语言的编译环境,如果没有gcc请在线安装,可用$gcc命令测试是否已经安装,如果没安装请执行$yum install gcc-c++命令安装。
2.2 上传redis源码到目录/root/myInstall/redisCluster/,执行解压命令$tar -zxv redis-3.0.0.tar.gz
进入redis源码目录,cd /root/myInstall/redisCluster/redis-3.0.0,执行$make命令对redis源码进行编译。
2.3 安装redis,执行命令$makeinstall PREFIX=/usr/local/redis,即指定把redis安装到/usr/local/,此时可以看到/usr/local/redis文件下生成的bin目录下有redis服务端和客户端。即redis单个实例生成,其实PREFIX指向路径可以自定义。
前端启动:
在bin目录下可以直接执行$./redis-server命令直接启动前端redis,但是此时会占用一个线程。
守护线程启动:
把源码里面的/root/myInstall/redisCluster/redis-3.0.0/redis.conf文件复制到redis安装所在的bin目录下/usr/local/redis/bin目录下
命令:cp /root/myInstall/redisCluster/redis-3.0.0/redis.conf ./
修改配置文件: daemonize修改为 yes
然后带配置文件启动:
[[email protected] bin]# ./redis-server redis.conf
查看redis后程进程,可以看到默认端口就是6379已经启动。
[[email protected] bin]# ps aux|grep redis
Redis客户端的启动:
[[email protected] bin]# ./redis-cli
127.0.0.1:6379> set age 11
OK
通过ip端口的方式启动redis,其实跟上面方式是一样效果的,远程连接可用此方式:
[[email protected] bin]# ./redis-cli -h192.168.206.150 -p 6379
192.168.206.150:6379> get age
"11"
Redis正常关闭服务端:
192.168.206.150:6379> shutdown
not connected>
3.redis集群的搭建
把单机版生成的/usr/local/redis/bin下的文件复制到redisCluster的7000目录下
[[email protected] bin]# cp -r /usr/local/redis/bin/* /root/myInstall/redisCluster/7000
若有dump.rdb脏数据,则删除
[[email protected] 7000]# rm dump.rdb
修改配置文件
[[email protected] 7000]# vim redis.conf
把cluster-enabled yes的集群注释去掉,同时修改端口port 6379
把实例再复制5分,即另外5个结点到当前redisCluster目录
[[email protected] redisCluster]# cp -r 7000 ./7001
[[email protected] redisCluster]# cp -r 7000 ./7002
[[email protected] redisCluster]# cp -r 7000 ./7003
[[email protected] redisCluster]# cp -r 7000 ./7004
[[email protected] redisCluster]# cp -r 7000 ./7005
分别修改每一个redis的端口分别为7001,7002,7003,7004,7005其他配置类同第一个redis实例。
创建启动脚本:
[[email protected] redisCluster]# touch startRedisServer.sh
[[email protected] redisCluster]# vim startRedisServer.sh
写入脚本内容:
[[email protected] redisCluster]# vim startRedisServer.sh
cd 7000
./redis-server redis.conf
cd ..
cd 7001
./redis-server redis.conf
cd ..
cd 7002
./redis-server redis.conf
cd ..
cd 7003
./redis-server redis.conf
cd ..
cd 7004
./redis-server redis.conf
cd ..
cd 7005
./redis-server redis.conf
授权startRedisServer.sh并运行:
[[email protected] redisCluster]# chmod 777startRedisServer.sh
[[email protected] redisCluster]#./startRedisServer.sh
查看redis是各个实例是否启动成功:
[[email protected] redisCluster]# ps -aux|grep redis
root 4234 0.0 0.2 140848 10012 pts/0 Sl 2月08 0:04 src/redis-server127.0.0.1:21344
root 8741 0.0 0.1 140848 7480 ? Ssl 00:59 0:00 ./redis-server *:7000 [cluster]
root 8875 0.0 0.1 140848 7476 ? Ssl 01:02 0:00 ./redis-server *:7001[cluster]
root 8747 0.0 0.1 140848 7480 ? Ssl 00:59 0:00 ./redis-server *:7002 [cluster]
root 8749 0.0 0.1 140848 7476 ? Ssl 00:59 0:00 ./redis-server *:7003 [cluster]
root 8753 0.0 0.1 140848 7476 ? Ssl 00:59 0:00 ./redis-server *:7004 [cluster]
root 8755 0.0 0.1 140848 7476 ? Ssl 00:59 0:00 ./redis-server *:7005 [cluster]
root 8887 0.0 0.0 112680 980 pts/0 R+ 01:03 0:00 grep --color=auto redis
4.redis集群ruby环境搭建
4.1使用yum安装ruby
[[email protected] redisResource]# yum install ruby
[[email protected] redisResource]# yum install ruby gems
上传redis-3.0.0.gem(可以在redis源码中寻找),安装ruby脚本运行使用的包。
[[email protected] redisResource]# gem install redis-3.0.0.gem
Successfully installed redis-3.0.0
执行redis-trib.rb脚本
redis-3.0.0源码的src目录下找到redis-trib.rb脚本
[[email protected] redisCluster]# cd redis-3.0.0/
[[email protected] redis-3.0.0]# cd src
[[email protected] src]# ll *.rb
-rwxrwxr-x 1 root root 48141 4月 1 2015 redis-trib.rb
复制到集群所在的目录下
[[email protected] src]#cp *.rb /root/myInstall/redisCluster/
执行redis-trib.rb脚本,(replicas 1是一个备份机的意思)
[[email protected] redisCluster]#./redis-trib.rbcreate --replicas 1 192.168.206.150:7000 192.168.206.150:7001192.168.206.150:7002 192.168.206.150:7003 192.168.206.150:7004192.168.206.150:7005
可以看到3个主机分别是7000,7001,7002,看到Can I set the above configuration? (type 'yes' to accept)输入yes,同意完成分配,看到[OK]All 16384 slots covered即集群搭建成功。
集群客户端的启动测试,其中最后-c是表示集群方式启动:
[[email protected] redisCluster]#./7000/redis-cli -p 7000 -c
127.0.0.1:7000> set age 11
OK
127.0.0.1:7000>
[[email protected] redisCluster]#./7005/redis-cli -p 7005 -c
127.0.0.1:7005> get age
-> Redirected to slot [741] located at 192.168.206.150:7000
"11"
关闭集群脚本编写,在redisCluster文件夹下创建stopRedisServer.sh并授权,执行即可。
[[email protected] redisCluster]# vim stopRedisServer.sh
7000/redis-cli -p 7000 shutdown
7001/redis-cli -p 7001 shutdown
7002/redis-cli -p 7002 shutdown
7003/redis-cli -p 7003 shutdown
7004/redis-cli -p 7004 shutdown
7004/redis-cli -p 7005 shutdown