Linux Centos7 安装redis单机,redis集群,比较全面详细的讲解,刚学习redis的可以参考一下

环境说明:Win10 Centos7  Linux

在本人学习redis单机和集群搭建的时候,也搜索了很多篇博客,总的来说,很多不适合初学者,说的不详细,不明确,同样的操作结果出错,也没有解决办法,排版不好,导致一个符号或者字母 拷贝出错,所以博主写这篇博客,新手可以一目了然,按照方法操作就可以。开始讲解


Redis 单机安装,比较简单,我不是很推荐使用yum install 下载redis,当然方法很多种,可以用自己熟悉的,我这面说的是下载 .tar的方式。

因为Redis是C语言开发的,所有第一步在Linux下要先命令行安装

yum -y install gcc-c++

先创建一个文件夹,任意位置

cd /var 
mkdir redis

cd /var/redis

下载redis-5.0.5.tar.gz 到你刚刚创建的redis文件夹中

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

解压

tar -xzf redis-5.0.5.tar.gz

进入

cd redis-5.0.5/

编译

make && make install

编译成功后,可使用ll 查看文件分类

ll

开启服务前先修改一下redis.conf 

daemonize no 修改成 yes  表示后台运行

开启服务

 ./src/redis-server ./redis.conf 

看到返回 就代表启动成功; 

58316:C 15 Aug 2019 17:19:29.308 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
58316:C 15 Aug 2019 17:19:29.308 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=58316, just started
58316:C 15 Aug 2019 17:19:29.308 # Configuration loaded

使用redis-cli 测试一下

./src/redis-cli

返回:127.0.0.1:6379>   代表成功

(说明一点,在之后的使用中,如果出现readonly或者其它写入的问题,先重启保证能使用再去查找原因)

127.0.0.1:6379>  shutdown

再重新执行

./src/redis-server ./redis.conf 

启动成功,测试一下

127.0.0.1:6379> set name xiaobei
OK
127.0.0.1:6379> get name
"xiaobei"
127.0.0.1:6379> del name
(integer) 1

到这单机版redis 就已经安装好了


开始搭建redis集群

 

/var/redis/redis-5.0.5/src

mkdir redis-cluster
 
cd redis-cluster

开始拷贝redis.conf到 redis-cluster,

先执行

mkdir 7000 7001 7002 7003 7004 7005

再执行

cp redis.conf ../../redis-cluster/7000
cp redis.conf ../../redis-cluster/7001
cp redis.conf ../../redis-cluster/7002
cp redis.conf ../../redis-cluster/7003
cp redis.conf ../../redis-cluster/7004
cp redis.conf ../../redis-cluster/7005

然后开始修改每个redis.conf,如果是可视化的,建议直接去找到对应的文件修改,那样快一点

vi redis.conf 
 
按 i 是允许插入操作

配置文件中多余的注解可以删掉,只留下这些就行了

daemonize yes //redis后台运行

bind 0.0.0.0 //改成你对应的IP

pidfile /var/run/redis_7000.pid //pidfile文件对应7000

port 7000 //端口7000  7001 ...这些都对应修改

cluster-enabled yes //开启集群 把注释#去掉

cluster-config-file nodes.conf //集群的配置 配置文件首次启动自动生成

cluster-node-timeout 5000 //请求超时 设置5秒够了

appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志

protected-mode no //在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,

修改完 esc 退出   
:wq  保存

启动

 ./src/redis-server /var/redis-cluster/7000/redis.conf 
 ./src/redis-server /var/redis-cluster/7001/redis.conf 
 ./src/redis-server /var/redis-cluster/7002/redis.conf 
 ./src/redis-server /var/redis-cluster/7003/redis.conf 
 ./src/redis-server /var/redis-cluster/7004/redis.conf 
 ./src/redis-server /var/redis-cluster/7005/redis.conf 

执行命令,查看redis运行状况

ps -ef | grep redis


root       3067      1  0 00:43 ?        00:01:53 ./src/redis-server 0.0.0.0:6379
root      41193      1  0 09:50 ?        00:00:45 ./src/redis-server 0.0.0.0:7000 [cluster]
root      42190      1  0 10:36 ?        00:00:40 ./src/redis-server 0.0.0.0:7001 [cluster]
root      42201      1  0 10:36 ?        00:00:40 ./src/redis-server 0.0.0.0:7002 [cluster]
root      42228      1  0 10:36 ?        00:00:40 ./src/redis-server 0.0.0.0:7004 [cluster]
root      42308      1  0 10:39 ?        00:00:39 ./src/redis-server 0.0.0.0:7003 [cluster]
root      58338  58207  0 17:20 pts/1    00:00:00 ./src/redis-cli
root      58717  53467  0 17:45 pts/0    00:00:00 grep --color=auto redis

安装ruby的解释器,新建一个文件夹

cd /var/redis/

mkdir ruby

cd ruby
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.gz

 解压

tar -zxvf ruby-2.6.3.tar.gz

进入解压目录 (cd ruby-2.6.3)

执行命令

cd ruby-2.6.3
 
./configure

make && make install

如果报错

redis make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop.

在ruby文件路径下 继续  cd ext/zlib/

vi Makefile

zlib.o: $(top_srcdir)/include/ruby.h
修改为
zlib.o: ../../include/ruby.h

退出保存

make && make install


查看是否安装成功 如果没有配置环境变量,必须在安装目录下执行
ruby -v

开始启动

切记是在src路径下执行 ,不然找不到redis-trib.rb的

[root@localhost src]# ./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

肯定会报这个,没关系,注意它说的 Example   把那句话拷贝出来

WARNING: redis-trib.rb is not longer available!
You should use redis-cli instead.

All commands and features belonging to redis-trib.rb have been moved
to redis-cli.
In order to use them you should call redis-cli with the --cluster
option followed by the subcommand name, arguments and options.

Use the following syntax:
redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]

Example:
redis-cli --cluster create 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 --cluster-replicas 1

To get help about all subcommands, type:
redis-cli --cluster help

 再次执行

[root@localhost src]# ./redis-cli --cluster create 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 --cluster-replicas 1

返回,输入yes

[root@localhost src]# ./redis-cli --cluster create 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 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:7004 to 127.0.0.1:7000
Adding replica 127.0.0.1:7005 to 127.0.0.1:7001
Adding replica 127.0.0.1:7003 to 127.0.0.1:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 2eebb69604b658bf1556c4a734e70fddea55b92c 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
M: 2d895f4704cbe5bfb1f594718d12044b1bf8f6d6 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
M: 6eb3640f2deff214dfeb4580bd387149ccc73054 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
S: 19a94a67ece849ef0d848eddd5aa26d7f375c5bc 127.0.0.1:7003
   replicates 2eebb69604b658bf1556c4a734e70fddea55b92c
S: a8ff93250e9be45109fae456be4472a068624c33 127.0.0.1:7004
   replicates 2d895f4704cbe5bfb1f594718d12044b1bf8f6d6
S: 6ddd531fa9d1f6522145e92836358e037c0b6b35 127.0.0.1:7005
   replicates 6eb3640f2deff214dfeb4580bd387149ccc73054
Can I set the above configuration? (type 'yes' to accept): yes
 


看到最后输出,表示已经成功

>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
...
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 2eebb69604b658bf1556c4a734e70fddea55b92c 127.0.0.1:7000
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 6eb3640f2deff214dfeb4580bd387149ccc73054 127.0.0.1:7002
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: a8ff93250e9be45109fae456be4472a068624c33 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 2d895f4704cbe5bfb1f594718d12044b1bf8f6d6
S: 19a94a67ece849ef0d848eddd5aa26d7f375c5bc 127.0.0.1:7003
   slots: (0 slots) slave
   replicates 2eebb69604b658bf1556c4a734e70fddea55b92c
M: 2d895f4704cbe5bfb1f594718d12044b1bf8f6d6 127.0.0.1:7001
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 6ddd531fa9d1f6522145e92836358e037c0b6b35 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 6eb3640f2deff214dfeb4580bd387149ccc73054
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
 


ok,使用redis-cli测试

[root@localhost src]# ./redis-cli -c -p 7000
127.0.0.1:7000> set name zhangsan
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> get name
"zhangsan"
127.0.0.1:7001> 
[root@localhost src]# ./redis-cli -c -p 7003
127.0.0.1:7003> set name lisi
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> 

欧克,结束,redis集群搭建完毕,如参考过程中有问题或者出现问题,可在下方评论,我会回复的,如有不当之处,也请多多指教

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值