下载文件 redis-3.0.0.tar.gz
Redis是c开发的,因此安装redis需要c语言的编译环境,即需要安装gcc
查看是否安装gcc
gcc -v
如果没有gcc,则需要在线安装.命令如下
yum install gcc-c++
1)上传redis压缩包到服务器
本文是通过MobaXterm进行操作的,如图
tar zxf redis-3.0.0.tar.gz
3)进入redis-3.0.0目录并查看该目录下文件
4)make编译redis源码
如下则编译成功
5)安装编译后的redis代码到指定目录,一般存放于/usr/local下的redis目录,指令如下
make install PREFIX=/usr/local/redis
如下图则说明安装成功,此时查看/user/local目录,可以发现多了一个redis文件夹
6)此时可以启动redis了,默认启动模式为前端启动,指令如下
./redis-server
7)前端启动的话,如果客户端关闭,redis服务也会停掉,所以需要改成后台启动redis
a)将redis解压文件里面的redis.conf文件复制到当前目录
cp ~/redis-3.0.0/redis.conf .
b)修改redis.conf文件,将daemonize no -> daemonize yes,这样便将启动方式修改为后台启动了
vim redis.conf
然后保存修改并退出,指令如下(四步操作)
Esc -> : -> wq -> Enter(回车)
./redis-server redis.conf
1)查看redis是否在运行
ps aux|grep redis
2)打开redis连接
./redis-cli 或redis-cli -c -p 6379
连接成功,如图所示
1)在usr/local目录下新建redis-cluster目录,用于存放集群节点
2)复制/usr/local/redis/bin目录下所有文件
把redis目录下的bin目录下的所有文件复制到/usr/local/redis-cluster/redis01目录下,不用担心这里没有redis01目录,会自动创建的。
cp -r redis/bin/ redis-cluster/redis01
3)删除redis01目录下快照文件dump.rdb.
rm -rf dump.rdb
4)修改redis01目录下redis.conf配置文件
a)修改端口号为6380
b)将cluster-enabled yes 的注释打开(大概632行)
c)将cluster-config-file nodes-6379.conf 的注释打开,并改为cluster-config-file nodes-6380.conf(大概640行)
d)打开bind注释,并修改为bind 192.168.0.40(这一步很重要,每个节点都要修改为对应服务器的ip,下面127.0.0.1的地方都要改为192.168.0.40)
5)创建6个redis实例
a)将redis-cluster/redis01文件复制5份到redis-cluster目录下(redis02-redis06),创建6个redis实例,模拟Redis集群的6个节点。如下所示:
b)分别修改redis.conf文件端口号为6381-6385
1)由于一个一个启动太麻烦,所以在这里创建一个批量启动redis节点的脚本文件startall.sh,文件内容如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
2)创建好启动脚本文件之后,需要修改该脚本的权限,使之能够执行,指令如下:
chmod +x startall.sh
3)执行startall.sh脚本,启动6个redis节点
注意:如果出现报"没有那个文件或目录行"的错误,有可能是因为文件格式错误。 输入如下命令将文件dos格式转换成unix再启动
dos2unix startall.sh
4)查看redis是否启动
ps -ef|grep redis
注意:redis需要Ruby版本大于2.2.2
1)若存在Ruby,则清除旧版Ruby
yum remove ruby
2)安装依赖
yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel
3)上传ruby-2.3.0到服务器,并解压
tar zxvf ruby-2.3.0.tar.gz
4)进入ruby-2.3.0目录下,执行以下命令
./configure --disable-install-rdoc
5)在ruby-2.3.0目录下,执行以下命令
make
make install
6)查看Ruby信息
ruby -v
7)要支持redis通信,需要下载redis相关包
gem install redis
1)切换到redis解压的源码包src目录下
cd /root/redis-3.0.0/src/
2)执行以下命令
./redis-trib.rb create --replicas 1 192.168.0.40:6380 192.168.0.40:6381 192.168.0.40:6382 192.168.0.40:6383 192.168.0.40:6384 192.168.0.40:6385
--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个,所以我们用了6个redis
3)遇到以下提示信息,手动输入yes
1)测试连接
./redis-cli -c -p 6380
2)查看集群信息
a.查看当前集群信息
cluster info
b.查看集群里有多少个节点
cluster nodes
redis.conf
bind 127.0.0.1 机器ip
将绑定方式修改为:
bind 机器ip
开启集群的配置
#cluster-config-file nodes-6496.conf 将注释打开并将端口号修改,区别自动生成的文件
Redis集群端口为6491-6496 就需要打开6491-6496的端口号以及16491-16496的端口
重启服务需要将各个端口生成的rdb、nodes.conf 、aof文件删除
#./redis-cli -c -h 10.10.200.199 -p 6491
10.10.200.199:6491>cluster nodes
10.10.200.199:6491>cluster info
查看key对应的slot
cluster keyslot key
查看slot和节点的对应关系
cluster slots
./redis-cli -p 6379 shutdown
用kill -9 进程号,直接杀进程的方法会造成数据丢失
##后续 ###1.redis-4.0.11默认会开启bind 127.0.0.1和写保护protected-mode yes,配置的时候需要将bind 127.0.0.1注释掉,改成protected-mode no