网站运营
位置:首页>> 网站运营>> Linux安装Redis实现过程及报错解决方案

Linux安装Redis实现过程及报错解决方案

作者:shookm  发布时间:2023-11-02 16:41:41 

标签:Linux,安装,Redis

今天安装redis出现些之前安装不曾出现错误,一并在此做个记录

一、安装redis及出现错误

首先下载redis,官方下载地址页面:https://redis.io/download

我们这里选择稳定版6.0.1版本

Linux安装Redis实现过程及报错解决方案

正常安装步骤如下:


[root@localhost ~]# yum install gcc
[root@localhost ~]# cd /usr/local
[root@localhost local]# wget http://download.redis.io/releases/redis-6.0.1.tar.gz
[root@localhost local]# tar -xvf redis-6.0.1.tar.gz
[root@localhost local]# cd /usr/local/redis-6.0.1/
[root@localhost redis-6.0.1]# make PREFIX=/usr/local/redis install

这里报了如下错误

make[1]: *** [server.o] 错误 1
make[1]: 离开目录“/usr/redis-6.0.1/src”
make: *** [all] 错误 2

server.c:2402:11: 错误:‘struct redisServer'没有名为‘assert_file'的成员
server.assert_file = "<no file>";
^
server.c:2403:11: 错误:‘struct redisServer'没有名为‘assert_line'的成员
server.assert_line = 0;
^
server.c:2404:11: 错误:‘struct redisServer'没有名为‘bug_report_start'的成员
server.bug_report_start = 0;
^
server.c:2405:11: 错误:‘struct redisServer'没有名为‘watchdog_period'的成员
server.watchdog_period = 0;
^
server.c:2411:11: 错误:‘struct redisServer'没有名为‘lua_always_replicate_commands'的成员
server.lua_always_replicate_commands = 1;
^
server.c: 在函数‘restartServer'中:
server.c:2464:32: 错误:‘struct redisServer'没有名为‘maxclients'的成员
for (j = 3; j < (int)server.maxclients + 1024; j++) {
^
server.c: 在函数‘adjustOpenFilesLimit'中:
server.c:2491:29: 错误:‘struct redisServer'没有名为‘maxclients'的成员
rlim_t maxfiles = server.maxclients+CONFIG_MIN_RESERVED_FDS;
^
server.c:2497:15: 错误:‘struct redisServer'没有名为‘maxclients'的成员
server.maxclients = 1024-CONFIG_MIN_RESERVED_FDS;
^
server.c:2529:53: 错误:‘struct redisServer'没有名为‘maxclients'的成员
unsigned int old_maxclients = server.maxclients;
^
server.c:2530:23: 错误:‘struct redisServer'没有名为‘maxclients'的成员
server.maxclients = bestlimit-CONFIG_MIN_RESERVED_FDS;
^
server.c:2554:59: 错误:‘struct redisServer'没有名为‘maxclients'的成员
(unsigned long long) bestlimit, server.maxclients);
^
server.c: 在函数‘checkTcpBacklogSettings'中:
server.c:2574:48: 错误:‘struct redisServer'没有名为‘tcp_backlog'的成员
if (somaxconn > 0 && somaxconn < server.tcp_backlog) {
^
server.c:2575:171: 错误:‘struct redisServer'没有名为‘tcp_backlog'的成员
serverLog(LL_WARNING,"WARNING: The TCP backlog setting of %d cannot be enforced because /proc/sys/net /core/somaxconn is set to the lower value of %d.", server.tcp_backlog, somaxconn);

Linux安装Redis实现过程及报错解决方案

Linux安装Redis实现过程及报错解决方案

Linux安装Redis实现过程及报错解决方案

解决办法:升级gcc版本

[root@localhost redis-6.0.1]# gcc -v # 查看gcc版本
[root@localhost redis-6.0.1]# yum -y install centos-release-scl # 升级到9.1版本
[root@localhost redis-6.0.1]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@localhost redis-6.0.1]# scl enable devtoolset-9 bash
以上为临时启用,如果要长期使用gcc 9.1的话:
[root@localhost redis-6.0.1]# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

再执行编译:

[root@mmjredis redis-6.0.1]# make PREFIX=/usr/local/redis install

安装成功会出现:Hint: It's a good idea to run 'make test' 😉

Linux安装Redis实现过程及报错解决方案

我们执行一下make test来进行测试一下

出现了如下错误:

[root@localhost redis-6.0.1]# make test
cd src && make test
make[1]: 进入目录“/usr/redis-6.0.1/src”
CC Makefile.dep
make[1]: 离开目录“/usr/redis-6.0.1/src”
make[1]: 进入目录“/usr/redis-6.0.1/src”
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] 错误 1
make[1]: 离开目录“/usr/redis-6.0.1/src”
make: *** [test] 错误 2

Linux安装Redis实现过程及报错解决方案

解决办法:

[root@localhost redis-6.0.1]# yum install tcl[root@localhost redis-6.0.1]# make test

测试成功如下:

Linux安装Redis实现过程及报错解决方案

先运行redis试一下:


[root@localhost redis-6.0.1]# /usr/local/redis-6.0.1/src/redis-server /usr/local/redis-6.0.1/redis.conf
32101:C 13 May 2020 17:01:48.248 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
32101:C 13 May 2020 17:01:48.248 # Redis version=6.0.1, bits=64, commit=00000000, modified=0, pid=32101, just started
32101:C 13 May 2020 17:01:48.248 # Configuration loaded
32101:M 13 May 2020 17:01:48.249 * Increased maximum number of open files to 10032 (it was originally set to 1024).
       _._
     _.-``__ ''-._
  _.-``  `. `_. ''-._      Redis 6.0.1 (00000000/0) 64 bit
.-`` .-```. ```\/  _.,_ ''-._
(  '   ,    .-` | `,  )   Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'|   Port: 6379
|  `-._  `._  /   _.-'  |   PID: 32101
`-._  `-._ `-./ _.-'  _.-'
|`-._`-._  `-.__.-'  _.-'_.-'|
|  `-._`-._    _.-'_.-'  |      http://redis.io
`-._  `-._`-.__.-'_.-'  _.-'
|`-._`-._  `-.__.-'  _.-'_.-'|
|  `-._`-._    _.-'_.-'  |
`-._  `-._`-.__.-'_.-'  _.-'
  `-._  `-.__.-'  _.-'
    `-._    _.-'
      `-.__.-'

Linux安装Redis实现过程及报错解决方案

二、后台启动

简单修改后台启动

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

daemonize no 改成 daemonize yes

再来运行一下

[root@localhost redis-6.0.1]# /usr/redis-6.0.1/src/redis-server /usr/redis-6.0.1/redis.conf
30385:C 13 May 2020 16:57:58.918 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
30385:C 13 May 2020 16:57:58.918 # Redis version=6.0.1, bits=64, commit=00000000, modified=0, pid=30385, just started
30385:C 13 May 2020 16:57:58.918 # Configuration loaded

后台运行成功,我们查看一下,并终止程序

[root@localhost redis-6.0.1]# ps -aux|grep redis| grep -v grep
root 29836 0.0 0.0 162416 7912 ? Ssl 16:56 0:00 /usr/redis-6.0.1/src/redis-server 127.0.0.1:6379
[root@localhost redis-6.0.1]# kill -9 29836

我们这里用到的是用后台systemctl启动redis

首先把redis加入service服务

vim /lib/systemd/system/redis.service

写入

[Unit]
Description=redis
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis-6.0.1/src/redis-server /usr/local/redis-6.0.1/etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意路径问题,以及PIDFile的路径对应的是redis-6.0.1/src/redis-server里面的PIDFile

wq保存退出即可

接着运行以下

[root@localhost redis-6.0.1]# systemctl enable redis.service # 加入开机启动

[root@localhost redis-6.0.1]# systemctl is-enabled redis.service # 查看开机是否启动成功
enabled

[root@localhost redis-6.0.1]# systemctl start redis #开启redis服务

[root@localhost redis-6.0.1]# systemctl status redis //查看redis运行状态

如果启动出现问题,可以通过systemctl status redis来查看日志修复

Linux安装Redis实现过程及报错解决方案

如图已经启动成功

来源:https://www.cnblogs.com/shook/p/12883742.html

0
投稿

猜你喜欢

  • 因为经历过两个网站交易,深感买方与卖方博弈的心里。个人站长做一个站不容易希望能给他们一些借鉴,当然仅仅是个人观点。卖站者与买站者永远是个博弈
  • 顾名思义,人肉搜索就是利用现代信息科技,变传统的网络信息搜索为人找人、人问人、 * 、人挤人、人挨人的关系型网络社区活动,变枯燥乏味的查询过
  • 1.简介各位看官老爷,本文为Jenkins实战,注重实际过程,阅读完会有以下收获:了解如何使用Docker安装Jenkins了解如何使用Je
  •  如上图 准备好该准备的食材(ps:其中的hadoop-3.1.2-src更改为hadoop-3.1.2src为源文件的意思? 反
  • 一、Docker Compose是什么?Docker Compose是一个工具,用于定义和运行多容器应用程序的工具;Docker Compo
  • 10月21日消息,阿里巴巴B2B公司今日对外公布“中国中小企业商务服务伙伴计划”,与首批纳入计划的四家物流巨头签订战略合作协议,其中天天快递
  • 百度终于对外承认早已启动进军IM的步伐。上周五,百度首次对外宣布对最新开发的即时通讯(IM)产品进行内测。该产品被定名为“百度Hi”。不过,
  • 从7月16日开始,国内部分地区用户(主要是西安电信和部分地区联通用户)向我反映,无法访问我的博客,经过我的测试排查发现,原因是部分地区的电信
  • 草根创业三年磨一剑 香自苦寒又是一个深冬的夜晚。窗外北风正紧。当我在昏黄的灯光下,写下这些文字来追忆往昔的时候,仍然不免感慨万千。三年前,同
  • 近日研究Google Adsense,终于知道了一条赚钱规则,按这个规则,应该可以优化Adsense提高收入了吧。这条规则其实非常的简单就是
  • 7月28日消息,有网游爆料称QQ最新版 2010SP1(版本号1760)有巨大漏洞,发送代码之后,打开聊天记录就可以执行。TechWeb从
  • SEO不 应该是一种行业,不应该是一种生意,而应该成为一种标准。Google应该发布说明文档来告诉人们到底什么才能帮助他们获得更高的排名,并
  • 1.更新yum源CentOS7默认yum源的PostgreSQL版本过低,不适合在本版本上使用。在https://yum.postgresq
  • 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务主要用三种方式进行这一操作:ln -s   
  • 在Google Earth 5.1测试版发布时就已改进了软件运行的速度,尤其是移动和转换地点时地图的更新速度明显提高。近日官方发布5.1正式
  • 不要跟我讲不看重结果,既然不看重结果那就享受过程,为什么在享受过程的时候又会有痛苦?不要跟我讲做网站不是为了赚钱,既然不还是为了赚钱做那么多
  • IMail基本安装和设置IMail的基本情况〖运行环境〗:NT/2K〖软件名称〗:IMail Administrator Version 6
  • 从事中文点击网赚的站长可以说是一个特殊的站长群体,这个群体不被主流网站看好,但其内部却是热闹非凡。很多的人从事网上的兼职活动都是从中文点击网
  • 做为国内最早开源的php+mysql网站内容管理系统dedecms织梦,我想作为站长的无论大小90%以上的应该都了解,最起码的是听闻。毕竟,
  • 8.使用安全密码一个好的密码对于一个网络是非常重要的,但是它是最容易被忽略的。前面的所说的也许已经可以说明这一点了。一些公司的管理员创建帐号
手机版 网站运营 asp之家 www.aspxhome.com