linux安裝redis及配置開機自啟
一、上傳Redis安裝包到Linux伺服器某檔案中,再解壓Redis安裝包
tar xzf redis-3.2.9.tar.gz
二、進入Redis目錄
cd redis-3.2.9
三、編譯原碼
Make
圖例:
四、新建立一個目錄存放Redis的必要檔案,因為編譯生成的東西比較多,也亂
mkdir bin
五、複製檔案
1、複製Redis的配置檔案(redis.conf)到bin目錄下。注意:這個配置檔案是在Redis根目錄的。
cp redis.conf /usr/redis/redis-3.2.9/bin/
2、進入src目錄
cd src
3、複製Redis的redis-server檔案到bin目錄下。
cp redis-server /usr/redis/redis-3.2.9/bin/
4、複製Redis的redis-cli 檔案到bin目錄下。
cp redis-cli /usr/redis/redis-3.2.9/bin/
5、複製Redis的redis-benchmark檔案到bin目錄下。
cp redis-benchmark /usr/redis/redis-3.2.9/bin/
六、再進入bin目錄
cd /usr/redis/redis-3.2.9/bin/
七、啟動Redis服務(前面是有點的),不能關閉這個(不能使用Ctrl+C終止,這樣會退出Redis服務的)
./redis-server
八、需要再開啟另一個命令視窗啟動客戶端
1、先進入bin目錄
cd /usr/redis/redis-3.2.9/bin/
2、啟動客戶端命令
./redis-cli
3、然後就可以使用Redis命令操作了。
九、Redis自動啟動見:
1、新建、編寫開機自啟動指令碼(redis-auto為新建的檔案)
vi /etc/init.d/redis-auto
2、在檔案redis-auto加入如下內容:(注意Redis具體的安裝路徑)
#!/bin/sh #chkconfig: 2345 80 90 # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDISPORT=6379 REDISPATH=/usr/redis/redis-3.2.9/bin EXEC=${REDISPATH}/redis-server CLIEXEC=${REDISPATH}/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="${REDISPATH}/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 ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -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
3、儲存退出
:wq
4、設定檔案redis-auto的許可權,讓Linux可以執行
chmod 755 redis-auto
5、啟動Redis服務測試,此處啟動用的是第二步設定的啟動指令碼
/etc/init.d/redis-auto start
可以開啟redis-cli客戶端進行測試
6、設定開機自啟動:
chkconfig redis-auto on
7、經過測試,Linux系統在重新啟動時,Redis的資料會自動丟失,解決方案見:
問題說明:
在Linux系統中,Redis本來是有資料的,但在Linux系統重啟後,Redis中的資料全部丟失。經過幾次測試都一樣,只有在Linux系統重啟才會丟失,Redis重啟應該是沒有問題的。
這個問題只在Linux系統才存在,在Windows系統是沒有問題的。
解決方案:
在Linux系統設定一個引數(vm.overcommit_memory)即可解決。
步驟如下:
1、編輯 sysctl.conf 配置檔案
vi /etc/sysctl.conf
2、另起一行增加引數 vm.overcommit_memory 配置,如下
vm.overcommit_memory = 1
3、使配置檔案生效
sysctl -p
再重啟Linux系統檢視資料是沒有丟失的