• Redis安装与常用配置


    Redis源码安装

    包括Redhat、Centos、Ubuntu、Debian等,在安装的过程中,不同的系统也可能会有不同的安装方式,比如Redhat和Centos支持yum安装,但是由于yum源可能更新的比较慢(主要是没有官方YUM包,不像Mysql。其他平台YUM源Redis版本低),所以我们一般的时候还是建议大家使用源码安装,版本可选,配置也更灵活。

    环境准备

    生产环境最好创建个Redis专用用户,所有的程序运行使用该用户,避免使用root用户所带来的安全隐患。这里由于是讲解,就不创建了

    [root@Redis ~]# systemctl stop firewalld
    [root@Redis ~]# systemctl disable firewalld
    [root@Redis ~]# setenforce 0
    ## 建立相应目录
    [root@Redis ~]# mkdir /soft/redis -p
    ## YUM安装GCC
    [root@Redis ~]# yum install gcc -y

    安装Redis
    Redis所有版本

    我们这里选的版本是3.0.6

    ## 下载Redis-3.0.6源码包
    [root@Redis ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
    ## 解压并指定解压目录
    [root@Redis ~]# tar zxf redis-3.0.6.tar.gz -C /soft/
    ## 安装Redis
    [root@Redis ~]# cd /soft/redis-3.0.6
    [root@Redis redis-3.0.6]# make
    [root@Redis redis-3.0.6]# make install PREFIX=/soft/redis/

    规划Redis常用目录

    ## 创建目录
    [root@Redis ~]# mkdir /soft/redis/{conf,var,log,data}
    [root@Redis ~]# ls /soft/redis/
    bin  conf  data  log  var
    ## 复制模板配置文件到 conf 目录
    [root@Redis ~]# cp /soft/redis-3.0.6/redis.conf /soft/redis/conf/

    简单修改配置文件 /soft/redis/conf/redis.conf ,修改内容如下:

    daemonize yes #这里调整为yes后台启动
    pidfile /soft/redis/var/redis.pid #这里调整为我们指定的目录
    port 6379 #端口使用默认
    logfile "/soft/redis/log/redis.log" #指定到我们的log目录下
    dbfilename dump.rdb #数据文件名
    dir /soft/redis/data/ #数据文件存放目录

    启动Redis与连接

    ## 不用配置文件直接前台启动Redis(会话结束,Redis服务也会结束)
    [root@Redis ~]# /soft/redis/bin/redis-server --port 6379
    ## 通过指定配置文件启动Redis
    [root@Redis ~]# /soft/redis/bin/redis-server /soft/redis/conf/redis.conf
    ## 查看端口Redis是否启动
    [root@Redis ~]# lsof -i :6379
    COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    redis-ser 1308 root    4u  IPv6  39194      0t0  TCP *:6379 (LISTEN)
    redis-ser 1308 root    5u  IPv4  39195      0t0  TCP *:6379 (LISTEN)
    ## 使用Redis自带的客户端连接
    [root@Redis ~]# /soft/redis/bin/redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379> 

    这里可以用 shell 写个启动脚本

    [root@Redis ~]# vim /etc/init.d/redis
    #!/bin/bash
    # chkconfig: 12345 80 90
    
    source /etc/init.d/functions
    
    ret(){
            if [ $? -eq 0 ];then
                    action "Redis Is $1" /bin/true
            else
                    action "Redis Is $1" /bin/false
            fi
    
    }
    
    case $1 in
    start)
            /soft/redis/bin/redis-server /soft/redis/conf/redis.conf
            ret $1
            ;;
    stop)
            kill -9 $(ps aux|grep redis-server|grep -v grep|awk '{print $2}')
            ret $1
            ;;
    restart)
            kill -9 $(ps aux|grep redis-server|grep -v grep|awk '{print $2}')
            ret $1
            sleep 1
            /soft/redis/bin/redis-server /soft/redis/conf/redis.conf
            ret $1
            ;;
    esac
    [root@Redis ~]# chmod +x /etc/init.d/redis
    [root@Redis ~]# chkconfig --add /etc/init.d/redis
    [root@Redis ~]# systemctl start redis

    Redis.conf 配置项

    ## Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启动守护进程,避免前台对出。
    daemonize no
    ## 当Redis以守护进程方式运行时,redis会生成redis.pid文件,可以通过pidfile指定
    pidfile /soft/redis/var/redis.pid
    ## 指定Redis监听端口,默认端口为6379
    port 6379
    ## 绑定的主机地址,可以是本机IP也可以127.0.0.1
    bind 127.0.0.1
    ## 当客户端闲置超时时间默认单位为妙,如果指定为0,表示关闭该功能。
    timeout 300
    ## Redis总共支持四个级别:debug、verbose、notice、warning,新手学习建议修改为debug模式,可以更好的观察redis使用时log的记录变化。
    loglevel verbose
    ## 日志记录方式,默认为标准输出。
    logfile stdout
    ## 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
    databases 16
    ## 持久化同步到数据文件的配置,可以配合多个策略使用。
    save <seconds> <changes>
    ## Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
    ## 分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
    
    ## 存储到本地时数据文件是否压缩,默认为yes,Redis采用LZF压缩,当数据量较小,为节省CPU可以考虑关闭。数据较大时,考虑磁盘空间以及I/O性能进行选择。
    rdbcompression yes
    ## 指定本地数据库文件名,默认值为dump.rdb,数据文件名字,符合公司或者一般命名规则,不过理论上来讲,是可以随便起的,哈哈。
    dbfilename dump.rdb
    ## 指定本地数据库存放目录,这个路径是相对路径也可以写绝对路径
    dir /soft/redis/data/
    ## 主从配置时的选项,设置当本机为slave服务时,通过配置好的master地址以及端口,在slave启动时,他会自动从master进行数据同步。
    slaveof <masterip> <masterport>
    ## 当master服务设置了密码保护时,slave服务连接master的密码,一般很少设置密码,特殊情况下才使用。
    masterauth <master-password>
    ## 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
    requirepass foobared
    ## 设置同一时间最大客户端连接数,当前默认查询为10000。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients recached错误信息
    maxclients 10000
    ## 指定Redis最大内存限制,redis启动之后会把数据加载到内存,如果达到最大值,但未加载完成会清理过期的key。默认0位不限制。
    maxmemory <bytes>
    ## 指定是否在每次更新操作后进行日志记录,看数据的重要性,如果一条记录都不允许丢失的话,建议开启。
    appendonly no
    ## 指定更新日志文件名,默认为appendonly.aof
    appendfilename appendonly.aof
    ## 指定更新日志条件,共有3个可选值:
    ##        no:表示等操作系统进行数据缓存同步到磁盘(快)
    ##        always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
    ##        exerysec:表示每秒同步一次(折中,默认值)
    appenddfsync ecerysec
    ## 指定是否启用虚拟内存机制,默认值为no。
    vm-enabled no
    ## 虚拟内存文件路径
    vm-swap-file /tmp/redis.swap
    ## 设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
    vm-max-memory 0
    ## 指定包含其它的配置文件
    include /path/to/local.conf
  • 相关阅读:
    Shell脚本编程之Shell函数
    Shell脚本编程之流程控制
    Shell脚本编程之Shell命令
    MySQL5.6的optimizer_trace
    Cgroup
    Python的__main__.py用法
    Git提交到github上
    mysql timeout
    数据库大牛
    update and的坑
  • 原文地址:https://www.cnblogs.com/songguoyou/p/11883952.html
Copyright © 2020-2023  润新知