Centos7.6安装redis6.0.1

本文详细介绍了在CentOS环境下安装Redis过程中可能遇到的错误及其解决方案,包括如何处理编译命令未找到的问题以及解决结构体成员不存在的错误。同时,提供了升级GCC版本的方法,确保Redis的顺利编译。

redis最新版下载地址

github
redis官网

安装redis

[root@master ~]# ls
anaconda-ks.cfg  redis-6.0.1.tar.gz
[root@master ~]# tar xf redis-6.0.1.tar.gz 
[root@master ~]# cd redis-6.0.1/
[root@master ~]# make && make install

报错1:/bin/sh: cc: command not found

[root@master redis-6.0.1]# make
……
make[3]: cc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/root/redis-6.0.1/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/root/redis-6.0.1/deps'
make[1]: [persist-settings] Error 2 (ignored)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/root/redis-6.0.1/src'
make: *** [all] Error 2

解决办法:

yum -y install gcc

报错2:server.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’

[root@master redis-6.0.1]# make
……
server.c:5101:19: error: ‘struct redisServer’ has no member named ‘sofd’
         if (server.sofd > 0)
                   ^
server.c:5102:94: error: ‘struct redisServer’ has no member named ‘unixsocket’
             serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket);
                                                                                              ^
server.c:5103:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5104:24: error: ‘struct redisServer’ has no member named ‘masterhost’
             if (!server.masterhost) {
                        ^
server.c:5117:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
……

解决办法:

# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
gcc -v
# 升级gcc到5.3及以上,如下:
升级到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版本号即可。

其他命令

# 编译出错时,清出编译生成的文件
make distclean
# 编译安装到指定目录下
make PREFIX=/usr/local/redis install 
# 卸载
make uninstall

 

### 如何在 CentOS 7.6安装 Redis #### 检查并准备开发工具链 为了确保可以顺利编译和安装软件,在开始之前应该确认已经安装了必要的构建工具。可以通过`gcc -v`来验证GCC是否存在[^1]。 如果未找到GCC,则需通过YUM源安装它以及其他必需组件: ```bash sudo yum groupinstall "Development Tools" -y ``` #### 添加 EPEL 软件库 由于Redis并不位于默认的CentOS存储库中,因此需要添加额外的EPEL(Extra Packages for Enterprise Linux)仓库以便获取最新的稳定版本。 ```bash sudo yum install epel-release -y ``` #### 使用 YUM 安装 Redis 一旦EPEL被激活之后,可以直接利用包管理器完成Redis服务端程序及其客户端应用的部署工作。 ```bash sudo yum install redis -y ``` #### 启动与基本操作命令 - **启动**:让Redis服务器立即进入运行模式可执行如下指令。 ```bash service redis start ``` 或者采用Systemd的方式控制单元文件: ```bash systemctl start redis ``` - **关闭**:当想要终止当前实例时可以用下面这条语句实现。 ```bash service redis stop ``` 同样地,对于现代Linux发行版推荐的做法是调用Systemd来进行资源释放动作: ```bash systemctl stop redis ``` - **查询状态**:要了解此刻的服务健康状况可通过此方法获得反馈信息。 ```bash service redis status ``` 而基于Systemd架构下的操作系统建议这样去监测其活动详情: ```bash systemctl status redis ``` - **查看进程列表**:有时可能还需要定位具体的后台线程ID号,这时便能借助于POSIX标准定义的过程描述符过滤机制达成目的。 ```bash ps aux | grep redis ``` #### 自动化引导加载项设定 为了让系统重启后自动恢复先前指定的任务计划表项目,应当把对应的守护进程加入到初始话进程中去。 ```bash chkconfig redis on ``` 不过更常见的是运用Systemd特性中的enable子命令达到相同效果: ```bash systemctl enable redis ``` #### 修改配置参数 最后一步就是按照实际需求调整内核级别的性能优化选项或是网络层面的安全策略等内容;这通常涉及到编辑/etc/redis.conf这个全局性的设置文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值