centos安装redis4.0.9
记录redis安装的过程步骤以及可能的问题
1:检查gcc环境
redis是C语言开发的,安装redis需要C语言编译环境,如果没有gcc,则需要安装
对于联网的机器安装gcc可以直接使用命令:
yum install gcc-c++
给机器安装gcc编译环境
2:下载或者拷贝redis压缩包到系统中并解压
将压缩文件放到/usr/ 目录中
执行解压命令:tar -zxvf redis-4.0.9.tar.gz将文件解压到文件夹:
3:编译
进入文件夹:
cd redis-4.0.9
然后执行命令:make
编译成功
4:安装
编译完成后进行安装,
执行命令:
cd src
make install PREFIX=/usr/redis
其中:PREFIX是指定redis的安装路径,这个路径是自己方便使用的路径,自由设定
安装完后,我们可以看到 有多了一个redis的目录
进入目录查看:
redis目录下目前仅有bin目录,再进入bin目录,可以看到几个文件:
redis-cli:redis的客户端启动文件
redis-server:启动redis服务的文件
dump.rdb:数据库文件,记录redis中的数据
5:启动
在bin目录下,使用 ./redis-server命令可以执行前台启动
启动成功后,因为是前台启动,占用了一个控制台,所以可以重新打开一个控制台,使用命令 ps aux|grep redis 查看
如果想关闭redis服务,直接在控制台 ctrl+c即可
6:后台启动
首先拷贝解压目录中的redis.conf文件到安装目录的bin目录下
进入解压目录:cd /usr/redis-4.0.9
拷贝: cp redis.conf /usr/redis/bin
然后编辑redis.conf文件,将daemonize属性的值由no改为yes
执行:vim redis.conf
找到该属性位置,按下键盘 i 键,表示插入操作,将no改为yes,然后按一下esc退出编辑,再输入 :wq 按回车,保存退出(此处借图一张)
然后执行命令:./redis-server redis.conf 即可后台启动redis
(先检查一遍,redis没有启动,执行后检查一遍,发现已经启动成功了)
7:后台启动的redis服务的关闭
a:正常结束:查看redis的进程号,然后使用 kill 进程号 结束进程
kill 3060
然后查看
发现进程已经不在了。
b:如果结束进程存在问题,可以使用kill-9 进程号
-9参数表示强制结束,-9与kill应该隔一个空格
c:使用客户端的shutdown命令结束进程
可以先./redis-cli进入客户端,在使用shutdown命令结束
也可以直接使用 ./redis-cli shutdown结束进程
8:存在的问题
安装完成的redis启动的时候,如果不对linux的内核做任何修改,可能会报三个警告:(因为我已经处理过了,此处参考网上文章记录下来)
第一个警告:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
意思是:TCP backlog设置值,511没有成功,因为 /proc/sys/net/core/somaxconn这个设置的是更小的128.
临时解决方法:(即下次启动还需要修改此值)
echo 511 > /proc/sys/net/core/somaxconn
永久解决方法:(即以后启动还需要修改此值)
将net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。
baklog参数实际控制的是已经3次握手成功的还在accept queue的大小。
第二个警告:overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to/etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
意思是:overcommit_memory参数设置为0!在内存不足的情况下,后台程序save可能失败。建议在文件 /etc/sysctl.conf 中将overcommit_memory修改为1。
临时解决方法:echo “vm.overcommit_memory=1” > /etc/sysctl.conf
永久解决方法:将vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然后执行sysctl -p生效配置。。
第三个警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain thesetting after a reboot. Redis must be restarted after THP is disabled.
意思是:你使用的是透明大页,可能导致redis延迟和内存使用问题。执行 echo never > /sys/kernel/mm/transparent_hugepage/enabled 修复该问题。
临时解决方法:
echo never > /sys/kernel/mm/transparent_hugepage/enabled。
永久解决方法:
将echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,然后执行source /etc/rc.local生效配置。
9:开机启动设置
redis作为服务器中的配置,一般需要设置开机自动启动
待续