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


    场景:项目开发中需要用到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(开启)的状态。
  • 相关阅读:
    (四)tensorflow-基础(数据类型,张量操作,数学运算)
    (三)tensorflow-gpu2.0之线性模型
    《莫得感情的coder》Alpha冲刺Scrum meeting 3
    《莫得感情的coder》Alpha冲刺Scrum meeting2
    《莫得感情的coder》Alpha冲刺Scrum meeting1
    实验八 团队作业4:团队项目需求建模与系统设计
    莫得感情的coder 实验七 团队作业3:团队项目需求分析与原型设计
    莫得感情的coder 实验六 团队作业2:Fit U健康管理小程序
    莫得感情的coder 实验五 团队作业1:软件研发团队组建与软件案例分析
    两台主机之间单向Ping不通的问题
  • 原文地址:https://www.cnblogs.com/lixuwu/p/6063921.html
Copyright © 2020-2023  润新知