linux环境部署--Reids3.2.5

linux环境部署--Reids3.2.5

redis-3.2.5.tar.gz 提取码:1999

1、进入/usr/local/src/目录

cd /usr/local/src/

2、下载Redis 3.2.5

wget http://download.redis.io/releases/redis-3.2.5.tar.gz

3、解压缩并进入文件夹

tar xzf redis-3.2.5.tar.gz

cd redis-3.2.5

4、编译Redis,命令make
5、执行下面的命令,解决Redis启动时候的Warning

echo 511 > /proc/sys/net/core/somaxconn

sysctl -w vm.overcommit_memory=1

echo never > /sys/kernel/mm/transparent_hugepage/enabled

6、创建日志的存放目录并设置到redis.conf

mkdir /var/log/redis

7、编辑redis.confvim redis.conf
# bind 127.0.0.1 #注释掉
requirepass xxx  #设置登录密码
loglevel debug   #日志等级
logfile /var/log/redis/redis.log #日志文件地址
daemonize yes    #守护线程启动
参数解释:

bind:可连接redis的ip地址,Reids3.2.5可缺省表示支持全部,高版本需要指定*才能为全部。

requirepass:登录密码验证。

loglevel:

日志等级
Redis的"loglevel"选项用于设置日志记录的详细程度,其值可以是以下之一:

debug:记录调试信息,包括Redis执行的每个命令和每个操作的详细信息。

verbose:记录详细信息,包括Redis执行的每个命令的名称和一些关键参数。

notice:记录通知信息,包括Redis的运行状态和一些重要的事件。

warning:记录警告信息,包括Redis的错误和异常情况。

error:记录错误信息,包括Redis的致命错误和不可恢复的异常情况。

默认情况下,Redis的"loglevel"选项设置为"notice",记录Redis的运行状态和重要事件。如果需要更详细的信息来调试或排除Redis问题,可以将"loglevel"选项设置为"debug"或"verbose"。需要注意的是,将"loglevel"选项设置为"debug"或"verbose"会增加日志文件的大小和系统资源的占用,可能会影响Redis的性能。因此,在正式环境中,应该将"loglevel"选项设置为"notice"或更高的级别来保护Redis的性能和安全。

可以在Redis的配置文件(redis.conf)中设置"loglevel"选项,也可以在Redis的命令行中使用"CONFIG SET"命令动态地修改"loglevel"选项的值。例如,要将"loglevel"选项设置为"debug",可以在命令行中执行以下命令:


CONFIG SET loglevel debug
或者在配置文件中添加以下行:

loglevel debug

logfile:日志文件地址

daemonize:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

pidfile: 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

port:指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字

timeout:当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

databases: 设置数据库的数量,默认数据库为0,数量16,可以使用SELECT 命令在连接上指定数据库id

save 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
    Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
    分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。

rdbcompression:指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

dbfilename:指定本地数据库文件名,默认值为dump.rdb

dir:指定本地数据库存放目录,默认./
  
slaveof 设置当本机为slav(从机)服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
    
masterauth 当master服务设置了密码保护时,slav服务连接master的密码

maxclients:设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

maxmemory 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区

appendonly:指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

appendfilename:指定更新日志文件名,默认为appendonly.aof

appendfsync:指定更新日志条件,共有3个可选值: 
    no:表示等操作系统进行数据缓存同步到磁盘(快) 
    always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全) 
    everysec:表示每秒同步一次(折中,默认值)

8、设置redis日志切割

vim /etc/logrotate.d/redis

/var/log/redis/redis.log {
    weekly
    rotate 10
    copytruncate
    delaycompress
    compress
    notifempty
    missingok
}
9、安装Redis,执行make install
10、添加启动脚本,执行

vi /etc/init.d/redis
写入下面的代码,保存:

#!/bin/sh
#
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
 
PIDFILE=/run/redis_6379.pid
CONF="/usr/local/src/redis-3.2.5/redis.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
        if [ "$?"="0" ] 
        then 
              echo "Redis is running..."
        fi 
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac
11、设置权限和开机启动:

chmod +x /etc/init.d/redis

chkconfig --add redis

chkconfig redis on

最后将redis加入到rc.local文件中,即在rc.local增加启动代码就可以了:

vim /etc/rc.local

/etc/init.d/redis start

启动Redis

启动redis使用service redis start 或者/etc/init.d/redis start

停止redis的命令service redis stop 或者/etc/init.d/redis stop

posted @ 2023-05-09 16:55  哔~哔~哔  阅读(39)  评论(0编辑  收藏  举报