linux环境部署--Reids3.2.5
linux环境部署--Reids3.2.5
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
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
masterauth
maxclients:设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
maxmemory
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