Linux安装Redis实现过程及报错解决方案
作者:shookm 发布时间:2023-11-02 16:41:41
今天安装redis出现些之前安装不曾出现错误,一并在此做个记录
一、安装redis及出现错误
首先下载redis,官方下载地址页面:https://redis.io/download
我们这里选择稳定版6.0.1版本
正常安装步骤如下:
[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);
解决办法:升级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' 😉
我们执行一下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
解决办法:
[root@localhost redis-6.0.1]# yum install tcl[root@localhost redis-6.0.1]# make test
测试成功如下:
先运行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
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
二、后台启动
简单修改后台启动
[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来查看日志修复
如图已经启动成功
来源:https://www.cnblogs.com/shook/p/12883742.html
猜你喜欢
- Google Adwords广告投放中关键字优化常见的四大难题:1.关键字展示次数偏低;2.关键字点击率偏低;3.关键字点击单价偏高。4.关
- 白帽SEO工作准确的讲白帽SEO是一些遵守互联网道德准则,遵守搜索引擎约束规范的搜索引擎优化工作者。白帽SEO是相对黑帽SEO而言的。其特点
- 经常听到读计算机专业学生,毕业之后发出感叹:“我在大学什么也没学到,现在计算机的东西都不会!”。就其原因来看,不外乎是其一,学生自身原因。有
- 安装首先需要安装好Java和Scala,然后下载Spark安装,确保PATH 和JAVA_HOME 已经设置,然后需要使用Scala的SBT
- Apache需要设定成虚拟网站空间方式。新版SuSE的Apache已经改成模组化。所以只要修改几个档案就可以在建立帐号时,网站就对应的到位置
- 一,需求1,虚拟用户登录由于之前配置成功了postfix+MySQL虚拟用户登录,体会到了使用虚拟用户的好处和灵活性,所以这次也考虑采用虚拟
- 通常我们是在{$apache}/conf/httpd.conf中设置Apache的参数,然而我们并没有发现可以设置日志文件大小的配置指令,通
- “倾城”在WP中文模板区建议正文文字两端对齐,从而达到美化模板的目的。目前,对于英文文章,只需要设定 text-align:justify;
- Apache Maven一个潜在的基于java的apache ant的构建工具的替代者。两者之间的比较:第一:ant脚本是可以直接运行在ma
- 有用户问怎样在Godaddy-Linux共享主机上使用.htpasswd,其实要想使用密码来保护你的托管帐户上的某目录的话,只需创建个内容如
- 08年4月,或者再晚些的6月,SNS开始真正成为互联网圈内的第一热衷话题,起到推波助澜作用的,kaixin001首当其冲。病毒式的营销、 *
- 今日,据国外媒体报道,一家名为Powerset的创业公司正开发能采用“自然语言”的搜索技术,以取代当前流行的“关键词”搜索方式。这个信号无疑
- 科讯CMS系统,在发布文章之后发现文章里的图片在后台调了大小,但是在前台根本就没有反应看不到效果,而且在前台的图片的链接上显示的文字始终是“
- 用户在购买了Godaddy后,却不知道在那里登录,说找不到控制面板,其实,Godaddy不像Lunarpages那样有的控制面板,Godad
- 虽然说亡羊补牢可以将木马后门造成的损失降至最低,但最好的方法显然是防患于未然。1.后门防范基本功首先要关闭本机不用的端口或只允许指定的端口访
- 很久没有在博客上写关于百度seo的内容了,最近发现了百度这样一个现象,百度会根据链接文字修改网站标题。首先我们在百度搜索网易,排在结果中ww
- 为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。服务器系统windows 2003 server
- 引:在一台服务器的使用上,磁盘往往占据着很重要的位置。服务器磁盘的配置和维护对整个服务器性能方面产生很大影响。实际上,优化服务器磁盘的方法只
- 今天给大家讲一下如何建立社区的核心用户。说这个主题之前,想先向大家简单说一下什么是核心用户。首先,核心用户要符合两个生理特征。一是脸部肌肉发
- 随着Windows 7的亮相,给人印象非常深刻之一就是其优秀的触摸屏技术。而大家对Windows 7细节却还不甚了解,据微软方面称目前还不会