基于Ubuntu18.04的Redis安装,并搭建伪集群

1.安装redis

wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar vxzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
设置安装路径
先在/usr/local/下建立一个redis-cluster集群文件
然后再make install PREFIX=/usr/local/redis-cluster/redis1

2.修改配置文件redis.conf

从redis源码文件目录中复制redis.conf到我们安装的路径下redis1
cd /usr/local/redis-cluster/redis1
vim redis.conf
使用 / 查找以下内容并修改:
port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

3.创建6台redis集群

在redis-cluster目录下:
cp redis1 redis2.3.4.5.6
分别vim redis.conf,修改端口号为7002,7003,7004,7005,7006

4.安装ruby脚本环境

到/home/lishuoxin/redis的解压文件下的src下,把redis-trib.rb文件复制到redis-cluster目录
cd /home/lishuoxin/redis-4.0.2/src
cp redis-trib.rb /usr/local/redis-cluster
在redis-cluster下,
安装ruby环境:
yum install ruby
yum install rubygems
安装redis-trib.rb运行依赖的ruby的包redis-4.0.2.gem:
gem install redis-4.0.2.gem

5.在redis-cluster下编写一个一次启动6台redis的文件:

vim startall.sh
cd redis1
./redis-server redis.conf
cd …/
cd redis2
./redis-server redis.conf
cd …/
cd redis3
./redis-server redis.conf
cd …/
cd redis4
./redis-server redis.conf
cd …/
cd redis5
./redis-server redis.conf
cd …/
cd redis6
./redis-server redis.conf
cd …/
修改文件权限:chmod 777 startall.sh
启动redis:./startall.sh
查看redis进程信息:ps -ef | grep redis(如果要停止某一redis,kill -9 pid,杀死全部,pkill -9 redis)

6.使用redis-trib.rb创建集群

./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
使用create命令 --replicas 1 参数表示为每个主节点创建一个从节点,地址127.0.0.1是redis.conf中的地址,而不是本机ip地址。
成功的标志:[OK] All 16384 slots covered.

7.redis集群的测试

进入其中一个redis
redis1/redis-cli -h 127.0.0.1 -p 7002 -c
客户端连接集群redis-cli需要带上 -c ,表示集群。
127.0.0.1:7001> set name andy
-> Redirected to slot [5798] located at 127.0.0.1:7002
OK
127.0.0.1:7002> get name
“andy”
根据redis-cluster的key值分配,name应该分配到节点7002[5461-10922]上,上面显示redis cluster自动从7001跳转到了7002节点。
至此,大功告成!

过程中出现的问题:

问题1:Could not connect to Redis at 127.0.0.1:6379: Connection refused
解决:检查端口号是否有错,我一开始创建的redis文件夹,并有把redis.conf下的端口号改为7000,但是测试的时候只能连接6379的端口,明明是修改过了,所以个人猜想,可能redis这个文件名,系统会默认打开6379端口,所以我改名为redis1,端口号改为7001.

问题2:执行set命名,出现ERR Slot 0 is already busy (Redis::CommandError)
解决:杀死改redis进程,用./redis.conf 登录这个节点,然后执行flushall和cluster reset即可,然后重新执行群集脚本命令:./redis-trib.rb create --replicas 1 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 127.0.0.1:7006

问题3:安装ruby环境时,没有安装它依赖的gem包,然后没有出现编辑命令。

问题4:有次手贱,使用了redis-cli fix 7000,结果把所有槽点都分给了7000端口,只好删掉这个redis节点,重新来一个。

猜你喜欢

转载自blog.csdn.net/qq_41030039/article/details/89234568