前言
安装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
解压安装包并安装,分别执行以下命令
tar xzf redis-4.0.2.tar.gz cd redis-4.0.2 make make install
make编译可能会有报错,参考文章最后的解决办法。
Redis没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件:
启动和停止Redis
直接启动
直接运行redis-server即可启动Redis
redis-server
通过初始化脚本启动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
修改脚本第6行的REDISPORT变量的值为同样的端口号
cd /etc/init.d vim redis_6379
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
如果需要设置密码,可以取消配置文件中的requirepass注释,设置自己的密码
现在也可以使用下面的命令来启动和关闭Redis了
/etc/init.d/redis_6379 start /etc/init.d/redis_6379 stop
【重中之重】
让Redis随系统自动启动,这还需要对Redis初始化脚本进行简单修改,执行命令:
vim /etc/init.d/redis_6379
将下面语句添加到下图位置
# chkconfig: 2345 90 10 # description: Redis is a persistent key-value database
保存后通过下面的命令将Redis加入系统启动项里:
chkconfig redis_6379 on
通过上面的操作后,以后也可以直接用下面的命令对Redis进行启动和关闭了:
service redis_6379 start service redis_6379 stop
经过上面的部署操作后,系统重启,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
重新对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服务器安全组配置,把对应端口加入安全组配置中,并添加服务器防火墙开放端口中