Redis安装、配置以及单机集群搭建(给测试)

官方下载最稳定而且最新的版本,6.0已经推出了多线程了,我下载的是redis-6.2.4.tar.gz,下图的2.5版本其实相差不多,好了,废话不多说,跟着我一起搭建吧

在这里插入图片描述下载完后,首先使用xftp软件把redis推送到/opt/software/目录下
在这里插入图片描述
解压到/usr/local目录下,

 [root@localhost software]# tar -zxvf redis-6.2.4.tar.gz
[root@localhost software]# mv redis-6.2.4 /usr/local/

如图
在这里插入图片描述

一、安装和初始化配置

cd进入 /usr/local/redis-6.2.4/src
在这里插入图片描述
确保有gcc-c++环境,因为redis有一部分是C语言写的,需要在C语言环境下对其编译成可执行文件

[root@localhost src]# yum install gcc-c++

ls可以看到很多.c文件,我们就需要对他们进行编译,使用命令

[root@localhost src]# make

编译好后,可以对其进行安装,默认安装到/usr/local/bin,其实就是通过依赖将可执行文件复制到bin目录下

[root@localhost src]# make install

如果make命令找不到,需要先进行.configure生成Makefile 脚本,才能使用上述两个命令

[root@localhost src]# ./configure

下一步就是要配置redis.conf文件了,复制redis-6.2.4目录下的redis.conf文件到/usr/local/bin/kconfig/,统一管理以备集群搭建

 [root@localhost redis-6.2.4]# cp redis.conf /usr/local/bin/kconfig/

vimvi编辑redis.conf文件,vim是带有颜色效果的编辑,例如看到注释效果

[root@localhost redis-6.2.4]# vim redis.conf  

通过/关键字快速定位,将deamonize状态改为yes, 即允许后台启动
在这里插入图片描述
为了后期方便管理,我把数据日志文件放在一个根目录/data下,统一管理

[root@localhost data]# mkdir redis_data
[root@localhost data]# mkdir redis_data/{data,log}

在这里插入图片描述
现在需要data的路径和log的路径,可以使用pwd命令
data目录路径:/data/redis_data/data
log文件路径:/data/redis_data/log/log-redis.log

接着vim编辑redis.conf文件,定位dir ,更改路径后,每次对redis持久化操作,在指定的dir目录下会生成dump.rdb文件,以及集群后的节点node配置文件
在这里插入图片描述pid是启动reids的一个服务进程,会随着启动而创建,关闭而消失
配置暂时告一段落

二、启动测试

/usr/local/bin/中有redis-server(该目录下是默认全局的)使用以下命令开启redis

redis-server /usr/local/bin/kconfig/redis.conf

在这里插入图片描述开启成功
在这里插入图片描述启动客户端:
键入命令redis-cli -h 127.0.0.1 -p 6379启动客户端
也可以使用redis-cliredis-cli -h localhost -p 6379redis-cli -p 6379结果都一样
简单测试:
在这里插入图片描述
根据持久化机制,shutdown会触发持久化操作,可以用来验证自己的配置是否生效在这里插入图片描述
到这里就可以做下一步了,集群搭建!

三、单机集群搭建

集群搭建,最简单的就是单机集群搭建,如果要多主机搭建,在实现了单机搭建后,自己就已经可以实现多机集群的搭建了,原理是一样的,那就开始搭建吧
新建文件redis6379.conf
复制下面配置信息到文件中,:wq保存退出,注意对应的include,这个是其他配置默认依赖redis.conf中的配置信息,相同配置在这里会覆盖

include /usr/local/bin/kconfig/redis.conf
pidfile "/var/run/redis_6379.pid"
port 6379
dbfilename "dump6379.rdb"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000

其他五个文件同理,更改pidfile中的6379、port的6379、dbfilename中的6379和cluster-config-file中的6379,遵循端口6379, 6380, 6381, 6389, 6390, 6391
在这里插入图片描述配置好后,其实还有几个配置就可以了
这里首先给配置高可用,也就是哨兵模式,主机宕机后自动选举老大,当然不用在意以后谁是谁的老大,新的老大出现该配置文件会自动更新,无需更改
kconfig目录下新建文件sentinel.conf

[root@ilocalhost kconfig]# vim sentinel.conf

将下面配置文件复制进去

# sentinel monitor 被监控的名称 host port 1 
sentinel monitor myredis [作为lead的ip地址] 6379 1 
# 后面的数字1,代表主机挂了,slave投票看让谁接替成为主机,票数最多的,就会成为主机

好了,哨兵模式已经配置完成,接着就是最关键的集群配置
cd进入redis-6.2.4/src目录下
键入命令,具体id地址根据自己虚拟机或者云服务器的给定ip来设置
云服务器:

redis-cli --cluster create --cluster-replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6389 127.0.0.1:6390 127.0.0.1:6391

虚拟机

redis-cli --cluster create --cluster-replicas 1 192.168.10.102:6379 192.168.10.102:6380 192.168.10.102:6381 192.168.10.102:6389 192.168.10.102:6390 192.168.10.102:6391

如果加了密码,那么创建集群时就需要加-a fyp123参数

连接失败?没关系,那是因为你没有先开启6个进程,先开启再键入命令重试

这里有必要强调以下几点:

如果集群搭建的是云服务器,为什么是127.0.0.1或者localhost

因为你是在云服务器上操作,所有本机就是云服务器

用不用在宝塔或者阿里云控制台上开启入站端口?

不用,没有涉及到远程连接,是不需要开启的

配置哨兵模式可以用在已经配置成集群的节点吗?

不可以,哨兵模式必须是无关联的没有配置过集群模式的节点,否则会不起作用,就算
强制性使用slaveof来选举老大,也是不允许的

好了,结果就是这样,集群搭建才算成功,集群客户端跟单机操作也有所不同

  • 查看集群状态:
cluster nodes
  • 集群客户端连接加上属性-c,表示以集群(cluster)模式连接
redis-cli -c -h yourhost -p yourpost
  • 计算key的插槽值
cluster keyslot k1
  • 计算在某个插槽中key的个数(只能在本客户端所在的插槽范围查询到)
cluster countkeysinslot 7629
  • 取出在具体插槽值的key
cluster getkeysinslot 7629 1

这种集群搭建不妨告诉大家,这就三主三从,主机可以读写操作,从机只能读,这种机制俗称读写分离

测试:
6379(Master)
在这里插入图片描述6389(Slave)
在这里插入图片描述好了,各位看官到这里就结束啦,有收获的给予好评哦!

小孩纸博客宗旨:欢迎留言!欢迎评论!有问题大家一起解决嘛!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗝屁小孩纸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值