Linux安裝Redis全過程日誌
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步應該沒有問題,主要的問題是執行make的時候,出現了異常。
異常一:
make[2]: cc: Command not found
異常原因:沒有安裝gcc
解決方案:yum install gcc-c++
異常二:
zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
異常原因:一些編譯依賴或原來編譯遺留出現的問題
解決方案:make distclean。清理一下,然後再make。
在make成功以後,需要make test。在make test出現異常。
異常一:
couldn't execute "tclsh8.5": no such file or directory
異常原因:沒有安裝tcl
解決方案:yum install -y tcl。
在make成功以後,會在src目錄下多出一些可執行檔:redis-server,redis-cli等等。
方便期間用cp命令複製到usr目錄下運行。
cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/
然後建立目錄,存放設定檔
mkdir /etc/redis
mkdir /var/redis
mkdir /var/redis/log
mkdir /var/redis/run
mkdir /var/redis/6379
在redis解壓根目錄中找到設定檔範本,複製到如下位置。
cp redis.conf /etc/redis/6379.conf
通過vim命令修改
daemonize yespidfile /var/redis/run/redis_6379.pidlogfile /var/redis/log/redis_6379.logdir /var/redis/6379最後運行redis:$ redis-server /etc/redis/6379.conf#################################開機自啟動配置##################################!/bin/sh## chkconfig: 2345 90 10# description: Redis is a persistent key-value database# redis Startup script for redis processes# processname: redisredis_path="/usr/local/bin/redis-server"redis_conf="/etc/redis/6379.conf"redis_pid="/var/redis/run/redis_6379.pid"# Source function library.. /etc/rc.d/init.d/functions[ -x $redis_path ] || exit 0RETVAL=0prog="redis"# Start daemons.start() {if [ -e $redis_pid -a ! -z $redis_pid ];thenecho $prog" already running...."exit 1fiecho -n $"Starting $prog "# Single instance for all caches$redis_path $redis_confRETVAL=$?[ $RETVAL -eq 0 ] && {touch /var/lock/subsys/$progsuccess $"$prog"}echoreturn $RETVAL}# Stop daemons.stop() {echo -n $"Stopping $prog "killproc -d 10 $redis_pathecho[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$progRETVAL=$?return $RETVAL}# See how we were called.case "$1" instart)start;;stop)stop;;status)status $progRETVAL=$?;;restart)stopstart;;condrestart)if test "x`pidof redis`" != x; thenstopstartfi;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart}"exit 1esacexit $RETVAL-------------------------------------------------------:wq! #儲存退出chmod 755 /etc/init.d/redis #添加指令碼執行許可權chkconfig --add redis #添加開啟啟動chkconfig --level 2345 redis on #設定啟動層級chkconfig --list redis #查看啟動層級service redis restart #重新啟動redis#################################設定redis設定檔參數##############################mkdir -p /usr/local/redis/var #建立redis資料庫存放目錄vim /etc/redis/6370.confdaemonize yes #以後台daemon方式運行redispidfile "/var/run/redis.pid" #redis以後台運行,預設pid檔案路徑/var/run/redis.pidport 6379 #預設連接埠bind 127.0.0.1 #預設綁定本機所有ip地址,為了安全,可以只監聽內網iptimeout 300 #用戶端逾時設定,單位為秒loglevel verbose #設定記錄層級,支援四個層級:debug、notice、verbose、warninglogfile stdout #日誌記錄方式,預設為標準輸出,logs不寫檔案,輸出到空裝置/deb/nulllogfile "/usr/local/redis/var/redis.log" #可以指定記錄檔路徑databases 16 #開啟資料庫的數量save 900 1save 300 10save 60 10000建立本機資料庫快照,格式:save * *900秒內,執行1次寫操作300秒內,執行10次寫操作60秒內,執行10000次寫操作rdbcompression yes #啟用資料庫lzf壓縮,也可以設定為nodbfilename dump.rdb #本地快照資料庫名稱dir "/usr/local/redis/var/" #本地快照資料庫存放目錄requirepass 123456 #設定redis資料庫連接密碼maxclients 10000 #同一時間最大用戶端串連數,0為無限制maxmemory 1024MB #設定redis最大使用記憶體,值要小於實體記憶體,必須設定appendonly yes #開啟日誌記錄,相當於MySQL的binlogappendfilename "appendonly.aof" #記錄檔名,注意:不是目錄路徑appendfsync everysec #每秒執行同步,還有兩個參數always、no一般設定為everysec,相當於MySQL事物日誌的寫方式:wq! #儲存退出service redis restart #重啟####################################測試redis資料庫####################################redis-cli -a 123456 #串連redis資料庫,注意:-a後面跟redis資料庫密碼set name 111cn.net #寫資料get name #讀取資料exit #退出redis資料庫控制台redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 100000 #1000個並發串連,100000個請求,測試127.0.0.1連接埠為6379的redis伺服器效能