redis的安装和使用

本文详细介绍了在CentOS7系统下安装Redis6.0.0的过程,包括解决编译时的依赖问题,升级GCC至支持C11的版本,配置守护进程,设置主从复制及哨兵模式,并调整日志输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载

https://redis.io/或者https://redis.io/download

2.上传并解压redis

3.执行make编译,但是报错了

提示找不到cc命令,执行yum -y install gcc gcc-c++ libstdc++-devel安装gcc环境

安装好后再次执行make,还是在报错

这是因为安装gcc之前执行make编译时有残留的文件,此时应该先清理残留文件,再进行编译:make distclean  && make

发现还是有报错,原因:

自redis 6.0.0之后,编译redis需要支持C11特性

Centos7默认gcc版本为4.8.5,C11 特性在4.9中引入

查看gcc的版本是4.8.5

所以需要升级gcc版本

升级到gcc 9.3:

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。

如果要长期使用gcc 9.3的话:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

这样退出shell重新打开就是新版的gcc了

以下其他版本同理,修改devtoolset版本号即可。

升级并使用gcc高版本之后,再次执行make distclean  && make,发现成功了。

4.进行安装

make install PREFIX=安装路径

安装完成后可以看到安装目录下生成了一个bin目录

单节点的redis就安装完成了,启动前备份一下安装好的redis,方便后面集群使用

5.启动单节点的redis

进入bin目录,输入./redis-server

启动成功,查看端口使用情况

6.连接redis使用

退出客户端连接:quit

停止redis-server:ctrl+c

7.设置redis允许后台运行

拷贝redis.conf到安装目录的bin目录下

修改daemonize yes(daemonize:守护进程)

启动时指定redis.conf:

正常关闭redis服务:redis-cli shutdown

如果端口不是默认的6379:redis-cli -p 8080 shutdown

8.使用主从复制

把redis.conf拷贝到集群(这里先做主从复制)用的redis的bin目录下

修改redis.conf文件,首先修改端口

把现有的redis改名为redis01,然后复制出redis02和redis03

修改redis02和redis03的端口

并且把守护进程的配置也改了

让7001做主节点,7002和7003做从节点。

首先停掉所有服务,然后修改7002和7003的redis.conf配置文件

#配置master的地址和端口 slaveof 192.168.1.6 7001

依次启动三个redis服务,然后使用info replication查看信息,发现有问题,

master中存入数据,slave中也取不到数据。

这里是因为master中配置文件的bind是127.0.0.1,需要改成bind 0.0.0.0或者直接注释掉,这里我将master中的bind属性直接注释掉。然后重新启动三台redis服务,发现状态正确了,数据也同步到了从服务器上。这里不仅需要改master的bind,slave的也需要改,因为一般用了主从复制都会用到哨兵模式,哨兵模式的话,在master挂掉的时候,其中一个slave会成为master。

9.配置redis日志输出文件

redis默认日志是控制台打印,因为上面的操作修改为后台启动,所以看不到日志,这个时候最好设置redis的日志输出到文件,这样方便出问题的时候看日志。进入redis.conf文件,设置logfile "path"

10.使用哨兵模式

主从服务器都创建sentinel.conf文件,里面的内容只有端口不一样。具体内容:

#entinel端口 port 17001 #工作路径,注意路径不要和主重复 dir "/tmp" # 守护进程模式 daemonize yes #关闭保护模式 protected-mode no # 指明日志文件名 logfile "../logs/redis-sentinel.log" #哨兵监控的master,主从配置一样 # sentinel monitor <master-name> <ip> <redis-port> <quorum> sentinel monitor mymaster 192.168.1.6 7001 1 #设置master和slaves验证密码(如果redis没设置密码,则不用设置) #sentinel auth-pass mymaster 123    #指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步 sentinel down-after-milliseconds mymaster 5000

11.启动哨兵,在启动之前,确保主从redis已启动

启动命令:./redis-sentinel ./sentinel.conf

启动完成后看看进程情况

进入客户端查看信息,可以看到7001现在是master

现在把7001服务停掉,再看看slave的情况

此时7003成为了master,哨兵模式验证成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值