场景:项目开发中需要用到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

1.2  解压

tar -zxvf redis-stable.tar.gz

1.3 编译、安装

cd redis-stable

make

Problem:

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

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

如果提示

请执行make distclean,然后再make

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

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

make install

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 

正常如下

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

2 修改配置文件.conf

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

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

mkdir redis

ll

ll 查看创建的redis目录

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

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

cd /var/

mkdir redis

cd redis

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

至此,目录创建完毕

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

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

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

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

  • 修改redis.conf文件

修改端口(默认6379)

修改pid目录为新建目录

pidfile /var/redis/run/redis.pid

修改dump目录为新建目录

dir /var/redis/data

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

logfile /var/redis/log/redis.log

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

查看是否占用6379端口号

netstat -tunpl | grep 6379

Problem:

查看dump, log, pid等

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

停止redis服务,

pkill redis-server

或者使用命令:

/usr/local/bin/redis-cli shutdown

Answer:

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

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

查看redis启动日志:

cat /var/redis/log/redis.log

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

查看pid信息,如下

查看dump信息

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

2.5  客户端连接redis

/usr/local/bin/redis-cli

默认端口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

修改脚本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用户,避免不必要的麻烦!

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

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

保存

退出

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

service redis start
service redis stop

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

3.2  给启动脚本添加权限

chmod +x /etc/init.d/redis

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

相应的删除权限是

chmod –x /etc/init.d/redis

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

3.3 设置自启动

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

如果运行报错,提示

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

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

再次执行chkconfig redis on,成功

至此,自启动配置完毕

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命令可以用来检查、设置系统的各种服务

使用语法:

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(开启)的状态。

(转)CentOS6.5下Redis安装与配置的更多相关文章

  1. CentOS6.5下Redis安装与配置

    http://blog.csdn.net/ludonqin/article/details/47211109

  2. windows下redis安装和配置

    windows下redis安装和配置 redis介绍 Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序. Redis有三个主要特点,使它优越于其它键值数 ...

  3. CentOS 下 redis 安装与配置

    CentOS 下 redis 安装与配置   1.到官网上找到合适版本下载解压安装 [root@java src]# wget -c http://redis.googlecode.com/files ...

  4. centos6.5下redis集群配置(多机多节点)

    可参考官网文档:redis集群配置 需要注意的是,集群中的每个节点都会涉及到两个端口,一个是用于处理客户端操作的(如下介绍到的6379/6380),另一个是10000+{监听端口},用于集群各个节点间 ...

  5. windows下redis安装及配置

    1.简介: redis是一个高性能的key-value数据库:redis能读的速度为11万次/秒,写的速度是8.1万次/秒 redis支持丰富的数据类型:String, List, Hash(map) ...

  6. CentOS下Redis安装与配置

    本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩)o (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [ ...

  7. 最新CentOS6.x下redis安装

    1:软件环境: 系统版本:CentOS release 6.5 redis版本:redis-cli 3.0.5 安装目录:"/usr/local/redis" 下载软件:" ...

  8. centos6.5下redis安装步骤总结

    1.首先下载一个版本 我用的是3.2.9 解压:tar -zxvf /redis-stable.tar.gz 在/usr/local/新建redis文件夹 然后把解压好的文件夹移动到/usr/loca ...

  9. Linux 下 Redis 安装与配置

    1.Redis 的安装 在 Ubuntu 系统安装 redis 可以使用以下命令: $ sudo apt-get update $ sudo apt-get install redis-server ...

随机推荐

  1. java控件之树形结构JTree

    import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; im ...

  2. 关于oracle数据库备份还原-impdp,expdp

    初始化: -- 创建表空间 CREATE TABLESPACE 表空间名 DATAFILE '文件名.dat' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNL ...

  3. angular.js的ng-app 指令定义一个 AngularJS 应用程序。

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  4. Deep Q-Network 学习笔记(一)—— Q-Learning 学习与实现过程中碰到的一些坑

    这方面的资料比较零散,学起来各种碰壁,碰到各种问题,这里就做下学习记录. 参考资料: https://morvanzhou.github.io/ 非常感谢莫烦老师的教程 http://mnemstud ...

  5. 如何用php实现文件上传与显示

    首先,我们要创建一个前台页面用于操作选择文件等: <body> <div id="div1"></div> <form action=&q ...

  6. 使用EF连接Postgresql

    环境: VS2017 Community Windows 10 Postgresql 9.6 安装Postgresql: https://www.postgresql.org/download/ 1. ...

  7. Android自定义简洁版EditText

    Android开发中有些主题的EditText不能让我们满意,我们通常希望文本输入框是一条直线,这样显得简洁又美观. 这里我们自定义了一个MyEditText类,继承EditText类,可以实现一条线 ...

  8. Angularjs在360兼容模式下取数据缓存问题解决办法

    测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重 ...

  9. .NET Core 2.0 Preview2 发布汇总

    前言 关于 ASP.NET Core 2.0 的新功能可以查看我的这篇博客. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Preview2 Azure 的改进 Dock ...

  10. linux下安装telnet

    1:yum install telnet-server 2:编辑设置 /etc/xinetd.d/telnet ,将disable= yes设置成disable= no 3:service  xine ...