redis单机版部署

目录

1、下载版本

2、上传解压

3、安装依赖包:

4、进入redis目录,执行编译

5、创建相应目录

6、配置redis.conf

7、启动redis

8、 配置redis开机自启


1、下载版本

        以下是我使用的版本:redis-4.0.1

         链接:https://pan.baidu.com/s/1No4Yvyhx7fgGR_w6-LhXtw          提取码:r3fu

2、上传解压

将下载好的源码包传送至/usr/local/redis目录,并解压

tar -zxvf redis-4.0.1.tar.gz

3、安装依赖包:

 yum install -y gcc

4、进入redis目录,执行编译

make PREFIX=/usr/local/redis/redis-single install #安装到指定目录中

注:通过PREFIX指定了安装的目录。

  • bin/目录文件说明:

[root@localhost redis-single]# cd bin/
[root@localhost bin]# ll
-rwxr-xr-x. 1 root root 5597582 May 21 12:01 redis-benchmark
-rwxr-xr-x. 1 root root 8307499 May 21 12:01 redis-check-aof
-rwxr-xr-x. 1 root root 8307499 May 21 12:01 redis-check-rdb
-rwxr-xr-x. 1 root root 5728606 May 21 12:01 redis-cli
lrwxrwxrwx. 1 root root      12 May 21 12:01 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8307499 May 21 12:01 redis-server

redis-server:redis服务器的daemon启动程序。
       redis-cli:Redis命令操作工具。当然,也可以telnet根据其纯文本协助来操作。
       redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
       redis-check-aof:更新日志检查。
       redis-check-dump:用于本地数据库检查。

5、创建相应目录

[root@localhost redis-single]# mkdir conf  ##配置文件目录

[root@localhost redis-single]# mkdir log   ##日志文件目录

[root@localhost redis-single]# mkdir run   ##运行的pid文件目录

[root@localhost redis-single]# mkdir data   ##快照和AOF文件目录

6、配置redis.conf

  • daemonize  yes     #默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes。

  • protected-mode no  #是指保护模式,默认情况下是yes,表示不允许通过外界网络连接使用redis;如果需要通过网络访问                                          redis,将该项改为no。

  • bind 127.0.0.1  #指定 Redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设                              置该项(bind 127.0.0.1为接收本机的请求)

  • pidfile /user/local/redis/redis-single/run/redis-6379.pid   

         #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid

  • port  6379    #监听端口,默认为6379
  • tcp-backlog 511 #此参数确定TCP连接中已完成队列(3次握手之后)的长度,应小于Linux系统                                                                     的/proc/sys/net/core/somaxconn的值,此选项默认值为511,而Linux的somaxconn默认值为128,当并                             发量比较大且客户端反应缓慢的时候,可以同时提高这两个参数。
  • tcp-keepalive 0 #指定ACKs的时间周期,单位为秒,值非0的情况表示将周期性的检测客户端是否可用,默认值为60秒。
  • timeout  #设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接.
  • loglevel  notice   #日志级别。分为 4 级, debug, verbose, notice, 和 warning。生产环境下一般开启 notice.

                       debug :一些提示信息,对开发与测试很有用;

                       verbose:有很多有用的信息;

                       notice:选择适当的verbose信息;

                       warning:只记录重要的而且的严重的信息

  • logfile  "user/local/redis/redis-single/log/redis-6379.log"

指定日志文件: 可以保存在文件中或者输出到屏幕上。默认值:stdout(标准输出),即打印在命令行终端的窗口上.

  • syslog-enabled no  #是否启用将记录记载到系统日志功能,默认为不启用 
  • syslog-ident redis #若启用日志记录,则需要设置日志记录的身份.
  • syslog-facility local0 #若启用日志记录,则需要设置日志facility,可取值范围为local0~local7,表示不同的日志级别。
  • databases 16  #设置数据库的数量,默认启动时使用DB0,使用“select ”可以更换数据库.
  • save 900 1  #表示如果900秒内至少1个key发生变化(新增、修改和删除),则重写rdb文件;
  • save 300 10 #表示如果每300秒内至少10个key发生变化(新增、修改和删除),则重写rdb文件;
  • save 60 10000 #表示如果每60秒内至少10000个key发生变化(新增、修改和删除),则重写rdb文件
  • stop-writes-on-bgsave-error yes  #当出现错误(如:硬盘错误、权限不够、或者其他错误)时停止写入数据。默认值:yes。
  • rdbcompression yes #是否在保存持久化文件时对文件rdb进行压缩。默认值:yes。
  • rdbchecksum yes  #在保存持久化文件时是否检查条目数,这在一定程度会影响redis的性能。默认值:yes。
  • dbfilename dump-b379.rdb #指定持久化文件的文件名。默认值:dump.rdb
  • dir  /user/local/redis/redis-single/data/rdb #数据库镜像备份的文件放置的路径。这里的路径跟文件名要分开配置是因为                Redis 在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,再把该临时文件替换为上面所              指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中.
  • requirepass  #设置客户端连接后进行任何其他指令前需要使用的密码。警告:因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行 150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
  • maxclients 10000 #限制同时连接的客户数量。当连接数超过这个值时, redis 将不再接收其他连接请求,客户端尝试连接时                                将收到error 信息。
  • maxmemory   #设置 redis 能够使用的最大内存。当内存满了的时候,如果还接收到 set 命令, redis 将先尝试剔除设置过 expire 信息的 key,而不管该 key 的过期时间还没有到达。在删除时,将按照过期时间进行删除,最早将要被过期的key 将最先被删除。如果带有 expire 信息的 key 都删光了,那么将返回错误。这样, redis 将不再接收写请求,只接收            get 请求。maxmemory 的设置比较适合于把 redis 当作于类似 memcached 的缓存来使用

如果内存使用量到达了最大内存设置,有6种处理方法:

volatile-lru -> remove the key with an expire set using an LRU algorithm
allkeys-lru -> remove any key according to the LRU algorithm
volatile-random -> remove a random key with an expire set
allkeys-random -> remove a random key, any key
volatile-ttl -> remove the key with the nearest expire time (minor TTL)
noeviction -> don't expire at all, just return an error on write operations
  • appendonly no  #默认情况下,redis 会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。所以 redis 提供了另外一种更加高效的数据库备份及灾难恢复方式。开启 appendonly 模式之后, redis 会把所接收到的每一次写操作请求都追加到appendonly.aof 文件中,当 redis 重新启动时,会从该文件恢复出之前的状态。但是这样会造成 appendonly.aof 文件过大,所以 redis 还支持了 BGREWRITEAOF 指令,对appendonly.aof 进行重新整理。所以推荐生产环境下的做法为关闭镜像,开appendonly.aof,同时可以选择在访问较少的时间每天对 appendonly.aof 进行重写一次。
  • appendfilename “appendonly.aof” #设置AOF记录的文件名
  • appendfsync   #设置对 appendonly.aof 文件进行同步的频率。

向磁盘进行数据刷写的频率,有3个选项: 
                always 有新数据则马上刷写,速度慢但可靠性高 ;
                everysec 每秒钟刷写一次,折衷方法,所谓的redis可以只丢失1秒钟的数据就是源于此处 ;
                no 按照OS自身的刷写策略来进行,速度最快 。

  • no-appendfsync-on-rewrite no #当主进程在进行向磁盘的写操作时,将会阻止其它的fsync调用。
  • auto-aof-rewrite-percentage 100 #aof文件触发自动rewrite的百分比,值为0则表示禁用自动rewrite 。
  • auto-aof-rewrite-min-size 64mb #aof文件触发自动rewrite的最小文件size 。
  • aof-load-truncated yes  #是否加载不完整的aof文件来进行启动。

7、启动redis

     启动 : /user/local/redis/redis-single/bin/redis-server  /user/local/redis/redis-single/conf/redis-6379.conf

    客户端连接:./redis-cli

8、 配置redis开机自启

redis启动脚本 redis_init_script 位于位于redis解压目录的 ./utils/ 目录下,redis_init_script脚本代码如下:

  • 修改 redis.conf 将daemonize为yes,让守护进程开启,也就是redis在后台可以运行.

  • redis启动脚本 redis_init_script 位于位于redis解压目录的 ./utils/ 目录下,redis_init_script脚本代码如下:其中 `#chkconfig:   2345 90 10 ` 为手动添加的,目的是为了在启动脚本开头添加该注释来修改运行级别。

    # imple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    
    #redis服务器监听的端口
    REDISPORT=6379
    
    #服务端所处位置
    EXEC=/usr/local/redis/redis-single/bin/redis-server
    
    #客户端位置
    CLIEXEC=/usr/local/redis/redis-single/bin/redis-cli
     
    #redis的PID文件位置,需要修改
    PIDFILE=/usr/local/redis/redis-single/run/redis_${REDISPORT}.pid
    
    #redis的配置文件位置,需将${REDISPORT}修改为文件名
    CONF="/usr/local/redis/redis-single/conf/redis_${REDISPORT}.conf"
     
    case "$1" in
        start)
            if [ -f $PIDFILE ]
            then
                    echo "$PIDFILE exists, process is already running or crashed"
            else
                    echo "Starting Redis server..."
                    $EXEC $CONF
            fi
            ;;
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    $CLIEXEC -a 123456 -p $REDISPORT shutdown
                    while [ -x /proc/${PID} ]
                    do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    echo "Redis stopped"
            fi
            ;;
        *)
            echo "Please use start or stop as first argument"
            ;;
    esac
    
  • 将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务) 
    cp redis_init_script /etc/init.d/redisd

  • 设置开机自启(关闭是off)
    #设置为开机自启动服务器
    chkconfig redisd on
    #打开服务
    service redisd start
    #关闭服务
    service redisd stop
    
  • 使用命令 来开启或者关闭redis了
    [root@localhost redis-single]# service redisd start
    Starting Redis server...
    [root@localhost redis-single]# lsof -i:6379
    COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    redis-ser 2624 root    6u  IPv6  23704      0t0  TCP *:6379 (LISTEN)
    redis-ser 2624 root    7u  IPv4  23706      0t0  TCP *:6379 (LISTEN)
    [root@localhost redis-single]# service redisd stop
    Stopping ...
    Redis stopped
    [root@localhost redis-single]# 

你可能感兴趣的:(#,redis,redis)