(转)CentOS6.5下Redis安装与配置

时间:2022-05-19 20:10:27

场景:项目开发中需要用到redis,之前自己对于缓存这块一直不是很理解,所以一直有从头做起的想法。

本文详细介绍redis单机单实例安装与配置,服务及开机自启动。如有不对的地方,欢迎大家拍砖o(∩_∩)o

以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [redis版本号中间位是偶数的是稳定版,奇数的为非稳定版]

参考知识:Redis知识库http://lib.csdn.net/base/redis

1 安装redis

这里特别提示下,Linux下安装redis最好使用root权限,否则会遇到很多麻烦,很可能不能保证下面的步骤能够正常进行。

1.1 下载redis安装包

可去官网http://redis.io ,也可通过wget命令,

wget http://download.redis.io/redis-stable.tar.gz

(转)CentOS6.5下Redis安装与配置

1.2  解压

tar -zxvf redis-stable.tar.gz

(转)CentOS6.5下Redis安装与配置

1.3 编译、安装

cd redis-stable

make

(转)CentOS6.5下Redis安装与配置

Problem:

如果提示gcc command不识别,请自行安装gcc;

如果提示couldn’t execute tcl : no such file or dicrectory,请自行安装tcl;

如果提示

(转)CentOS6.5下Redis安装与配置

请执行make distclean,然后再make

(转)CentOS6.5下Redis安装与配置

Make成功之后,会在src目录下多出一些文件,如下

(转)CentOS6.5下Redis安装与配置

手动拷贝redis-server、redis-cli、redis-check-aof、redis-check-dump等至/usr/local/bin目录下,也可执行make install,此处执行make install(为什么要这么做不清楚)

make install

(转)CentOS6.5下Redis安装与配置

cd /usr/local/bin/
ll

可查看,/usr/local/bin下已有这些文件。

注意:若此时执行redis-server –v (查看版本命令),若提示redis-server command not found,则需要将/usr/local/bin目录加到环境变量,如何添加,此处不做详细介绍,可查看修改/etc/profile,(查看环境变量命令:echo $PATH)

/usr/local/bin/redis-server –v 

正常如下

(转)CentOS6.5下Redis安装与配置

至此,redis安装完成,接着配置。

2 修改配置文件.conf

2.1 创建配置文件目录和其它三个文件目录

  • 配置文件一般放在/etc/下,创建redis目录
cd /etc/

mkdir redis

ll

ll 查看创建的redis目录

(转)CentOS6.5下Redis安装与配置

  • 创建dump file 目录,进程pid目录,log目录等

dump file、进程pid、log目录等,一般放在/var/目录下,

cd /var/

mkdir redis

cd redis

mkdir data log run
  • 查看已经创建的目录
cd /var/redis/
ll

(转)CentOS6.5下Redis安装与配置

至此,目录创建完毕

2.2 修改配置文件,配置参数

  • 首先拷贝解压包下的redis.conf文件至/etc/redis
//这里有个cs408是因为在安装时候我用的是cs408这个用户安装的,建议直接用root用户安装,下面的命令是切换到redis的解压目录
cd /home/cs408/redis-stable/ ll

(转)CentOS6.5下Redis安装与配置

//复制
cp redis.conf /etc/redis/ //查看
cd /etc/redis/ ll

(转)CentOS6.5下Redis安装与配置

至此,配置文件复制完毕!

  • 修改redis.conf文件

修改端口(默认6379)

(转)CentOS6.5下Redis安装与配置

修改pid目录为新建目录

pidfile /var/redis/run/redis.pid

(转)CentOS6.5下Redis安装与配置

修改dump目录为新建目录

dir /var/redis/data

(转)CentOS6.5下Redis安装与配置

修改log存储目录为新建目录

logfile /var/redis/log/redis.log

(转)CentOS6.5下Redis安装与配置

ps:在修改完log目录启动redis时候发现:不用root目录会一直报错。。。。。状况不明

2.3 持久化

默认rdb,可选择是否开启aof,若开启,修改配置文件appendonly(不理解)

2.4 启动redis,查看各目录下文件

先切换目录,再执行启动命令:

cd /usr/local/bin/
redis-server /etc/redis/redis.conf

或者 直接执行启动命令:

/usr/local/bin/redis-server /etc/redis/redis.conf

查看是否启动:

ps -ef | grep redis

(转)CentOS6.5下Redis安装与配置

查看是否占用6379端口号

netstat -tunpl | grep 6379

(转)CentOS6.5下Redis安装与配置

Problem:

查看dump, log, pid等

(转)CentOS6.5下Redis安装与配置

发现只有日志,没有dump和pid信息,是因为当前redis服务仍然是console模式运行的,且没有数据存储操作

停止redis服务,

pkill redis-server

或者使用命令:

/usr/local/bin/redis-cli shutdown

Answer:

修改配置文件使得redis在background运行

(转)CentOS6.5下Redis安装与配置

改成yes,保存,重启redis服务

查看redis启动日志:

cat /var/redis/log/redis.log

(转)CentOS6.5下Redis安装与配置

第一个标注是启动成功,第二个标注是关闭成功!

查看pid信息,如下

(转)CentOS6.5下Redis安装与配置

查看dump信息

(转)CentOS6.5下Redis安装与配置

若配置了aof持久化方式,data目录下还会有aof的相关文件

2.5  客户端连接redis

/usr/local/bin/redis-cli

(转)CentOS6.5下Redis安装与配置

默认端口6379

退出客户端

exit

//或者
quit

2.6 redis的一些配置

daemonize如果需要在后台运行,把该项改为yes
pidfile配置多个pid的地质,默认在/var/ren/redis.pid
bind绑定ip,设置后只接受来自该ip的请求
port监听端口,默认为6379
timeout设置客户端连接时的超时时间,单位为秒
loglevel分为4级,debug、verbose、notice、warning
logfile配置log文件地址 databases 设置数据库的个数,默认使用的数据库为0
save设置redis进行数据库镜像的频率
rdbcompression在进行镜像备份时,是否进行压缩
Dbfilename镜像备份文件的文件名
Dir数据库镜像备份的文件放置路径
Slaveof设置数据库为其他数据库的从数据库
Masteauth主数据库连接需要的密码验证
Requirepass设置登陆时需要的使用的密码
Maxclients限制同时连接的客户数量
Maxmemory设置redis能够使用的最大内存
Appendonly开启append only模式
Appendfsync设置对appendonly.aof文件同步的频率
vm-enabled是否开启虚拟内存支持
vm-swap-file设置虚拟内存的交换文件路径
vm-max-memory设置redis使用的最大物理内存大小
vm-page-size设置虚拟内存的页大小
vm-pages设置交换文件的总的page数量
vm-max-threads设置VMIO同时使用的线程数量
Glueoutputbuf设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
hash-max-zipmap-entries设置hash的临界值
Activerehashing重置hash,默认为开启

至此,redis基础配置完毕,若有其他相关配置调整,可查找文档再修改

3 服务及开机自启动

3.1  创建redis启动脚本

拷贝解压包下utils下redis启动脚本至/etc/init.d/,修改脚本名称(也可不修改)为redis

cp /home/cs408/redis-stable/utils/redis_init_script /etc/init.d/redis
cd /etc/init.d/

查看ll

(转)CentOS6.5下Redis安装与配置

修改脚本pid及conf路径为实际路径

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/redis/run/redis.pid
CONF="/etc/redis/redis.conf"

这里切换到root用户,避免不必要的麻烦!

(转)CentOS6.5下Redis安装与配置

PS:生产环境下,配置时,配置文件、pid等最好加上端口标识,以便区分,如

根据启动脚本要求,将修改好的配置文件以端口为名复制一份到指定目录。需使用root用户。

(转)CentOS6.5下Redis安装与配置

保存

退出

至此,在/etc/init.d/目录下,已经可以通过service redis start/stop 命令启动和关闭redis

service redis start
service redis stop

(转)CentOS6.5下Redis安装与配置

若在其他目录下,不能够使用这2个命令,请继续配置3,2,添加权限

3.2  给启动脚本添加权限

chmod +x /etc/init.d/redis

(转)CentOS6.5下Redis安装与配置

实际命令,根据目录的不同,会不一样

相应的删除权限是

chmod –x /etc/init.d/redis

如果需要在开机的时候,redis服务自动启动,可继续3.3

3.3 设置自启动

设置为开机自启动服务器
chkconfig redis on

如果运行报错,提示

(转)CentOS6.5下Redis安装与配置

是因为没有在启动脚本里加入redis启动优先级信息,可添加如下

vi /etc/init.d/redis
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#

(转)CentOS6.5下Redis安装与配置

再次执行chkconfig redis on,成功

(转)CentOS6.5下Redis安装与配置

至此,自启动配置完毕

3.4 自启动补充知识

接3.3自启动失败,进行处理:

service redis does not support chkconfig的解决办法

问题解决办法如下:

必须把下面两行注释放在/etc/init.d/redis文件靠前的注释中:

# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

上面的注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

附录:

linux 运行级别

运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。

不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)

# 缺省的运行级,RHS用到的级别如下:

0:关机

1:单用户模式

2:无网络支持的多用户模式

3:有网络支持的多用户模式

4:保留,未使用

5:有网络支持有X-Window支持的多用户模式

6:重新引导系统,即重启

对各个运行级的详细解释:

0 为停机,机器关闭。

1 为单用户模式,就像Win9x下的安全模式类似。

2  为多用户模式,但是没有NFS支持。

3  为完整的多用户模式,是标准的运行级。

4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。

5  就是X11,进到X Window系统了。

6  为重启,运行init 6机器就会重启。

chkconfig用法

chkconfig命令可以用来检查、设置系统的各种服务

(转)CentOS6.5下Redis安装与配置

使用语法:

chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

参数用法:

ps:下面的注释是参数,注意在参数前面还有一个‘“-”

–add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

–del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

–level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

使用范例:

chkconfig –-list                    列出所有的系统服务

chkconfig –-add redis               增加redis服务

chkconfig –-del redis                删除redis 服务

chkconfig –-level redis 2345 on     把redis在运行级别为2、3、4、5的情况下都是on(开启)的状态。