CentOS7安装Redis4.0.2及常见报错解决

前言

安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。


下载安装包

wget http://download.redis.io/releases/redis-4.0.2.tar.gz

image.png

解压安装包并安装,分别执行以下命令

tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

make编译可能会有报错,参考文章最后的解决办法。


Redis没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件:

image.png


启动和停止Redis

直接启动

直接运行redis-server即可启动Redis

redis-server

image.png

通过初始化脚本启动Redis(推荐方式)

在Redis源代码目录的utils文件夹中有一个名为redis_init_script的初始化脚本文件。需要配置Redis的运行方式和持久化文件、日志文件的存储位置。步骤如下:

1、配置初始化脚本

首先将初始化脚本复制到/etc/init.d 目录中,文件名为 redis_端口号,其中端口号表示要让Redis监听的端口号,客户端通过该端口连接Redis。

 cd /root/redis-4.0.2/utils
 cp -r redis_init_script /etc/init.d/redis_6379

image.png

修改脚本第6行的REDISPORT变量的值为同样的端口号

cd /etc/init.d
vim redis_6379

image.png

2、建立文件夹 /etc/redis 和 /var/redis/端口号

/etc/redis目录用于存放Redis的配置文件,/var/redis/端口号用于存放Redis的持久化文件

 mkdir -p /etc/redis
 mkdir -p /var/redis/6379

3、修改配置文件

首先将配置文件模板(redis-4.0.2/redis.conf)复制到/etc/redis 目录中,以端口号命名(如“6379.conf”)

cp /root/redis-4.0.2/redis.conf /etc/redis/6379.conf

然后按照下表对其中的部分参数进行编辑。

vim /etc/redis/6379.conf

image.png

如果需要设置密码,可以取消配置文件中的requirepass注释,设置自己的密码


现在也可以使用下面的命令来启动和关闭Redis了

/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop

image.png

【重中之重】让Redis随系统自动启动,这还需要对Redis初始化脚本进行简单修改,执行命令:

vim /etc/init.d/redis_6379

将下面语句添加到下图位置

# chkconfig: 2345 90 10 
# description: Redis is a persistent key-value database

image.png

保存后通过下面的命令将Redis加入系统启动项里:

chkconfig redis_6379 on

通过上面的操作后,以后也可以直接用下面的命令对Redis进行启动和关闭了:

service redis_6379 start
service redis_6379 stop

image.png

经过上面的部署操作后,系统重启,Redis也会随着系统自动启动,并且上面的步骤里也配置了Redis持久化,下次启动系统或Redis时,有缓存数据不丢失的好处。


停止Redis

考虑到 Redis 有可能正在将内存中的数据同步到硬盘中,强行终止 Redis 进程可能会导致数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,方法为:

redis-cli SHUTDOWN

当Redis收到SHUTDOWN命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
Redis可以妥善处理 SIGTERM信号,所以使用 kill Redis 进程的 PID也可以正常结束Redis,效果与发送SHUTDOWN命令一样。


总结

安装完成后,

通过service redis_6379 start 命令启动redis,

通过redis-cli SHUTDOWN 命令停止redis服务


安装过程中可能遇到的问题

1、make时报错:

gcc: Command not found

需要安装gcc,这里选择用yum进行安装

yum install gcc

根据提示完成安装,安装完成后,检查gcc是否安装成功:

 rpm -qa |grep gcc

image.png

重新对redis进行编译安装即可


2、make时报以下错误:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory

zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/data0/src/redis-2.6.2/src'

make: *** [all] Error 2

原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加以下参数即可

make MALLOC=libc

3、make之后,会出现一句提示

Hint: To run 'make test' is a good idea ;) 

但是不测试,通常是可以使用的。若我们运行make test ,会有如下提示

[devnote@devnote src]$ make test

You need tcl 8.5 or newer in order to run the Redis test

make: ***[test] Error_1

解决办法是用yum安装tcl8.5

yum install tcl

或去tcl的官方网站http://www.tcl.tk/下载8.5版本,并参考官网介绍进行安装


4、如果启动成功后,客户端无法连接

解决办法:检查阿里云ECS服务器安全组配置,把对应端口加入安全组配置中,并添加服务器防火墙开放端口中

打赏 支付宝打赏 微信打赏

如果文章对您有帮助,欢迎移至上方打赏按钮...

原力推-知识付费平台
原力推-知识付费平台
官网:https://yuanlitui.com
你可以把创造的任何有趣/有价值的内容变成付费版
出售给有需要的人,把洞察转化为价值

现在成为创作者免服务费
随手一点
  • 打酱油

    0人

  • 3人

  • 呵呵

    1人

  • 草泥马

    0人

文章评论 抢沙发