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
浙公網安備 33010602011771號