Linux上Redis的安裝過程以及注意事項
在開發過程中,經常會遇到快取資料的問題,Java裡面用來快取資料的有Ehcache,redis,memcached等快取技術,這幾種快取技術我在專案中都使用過,就我開發過程中來看,覺得Redis還是比較好用一些,功能更強大一些,快取資料格式多樣化一些。下面我就講講怎麼在Linux系統上安裝Redis以及安裝過程中需要主要的事項。
1.下載最新穩定版的Redis
下載地址 http://redis.io/download
推薦下載r最新版的edis-3.2.1.tar.gz,因為版本越高,功能越強,而且本來就會相容以前的功能。
2.安裝Redis
a) 下載後把 redis-1.2.6.tar.gz 拷貝到你的Linux系統的任意目錄,例如/usr/local/tools下面
b) 然後進行解壓操作,tar -zxvf redis-3.2.1.tar.gz ,解壓後在你的目錄下會生成redis-3.2.1資料夾
c) 進入redis-3.2.1資料夾裡面, cd /usr/local/tools/redis-3.2.1 ,然後執行make操作
如果在make過程出現錯誤,可能是你 Linux系統裡面沒有安裝Redis 需要的外掛,你可以使用下面命令進行安裝:
yum -y install gcc gcc-c++ libstdc++-devel
安裝完後,再執行make命令,如果還有錯誤的話,
如果報錯
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
解決辦法很簡單,執行以下命令就OK了:
make MALLOC=libc
理由是:Redis並沒有自己實現記憶體池,沒有在標準的系統記憶體分配器上再加上自己的東西。
d) 拷貝檔案以備把Redis做成自啟動服務,就是你在啟動Linux系統的使用就會把Redis 服務一起啟動起來
cp redis.conf /etc/ 這個檔案時redis啟動的配置檔案
cp redis-benchmark redis-cli redis-server /usr/bin/ #這個很有用,這樣就不用再執行時加上./了,而且可以在任何地方執行
e) 如果你的Linux系統有防火牆的話,你需要更改以下防火牆的設定或者直接關掉防火牆,不過你關掉防火牆的話,就不能保護你的電腦了。
開啟redis埠,修改防火牆配置檔案 vi /etc/sysconfig/iptables
加入埠配置 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重新載入規則 service iptables restart
到這你的Redis 就安裝完了。
3.Redis 自啟動服務實現
新建檔案 /etc/init.d/redis 並賦予它許可權 chmod +x /etc/init.d/redis
在 /etc/init.d/redis 檔案中新增以下程式碼:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
PATH=
/usr/local/bin
:
/sbin
:
/usr/bin
:
/bin
REDISPORT=6379
EXEC=
/usr/local/bin/redis-server
//EXEC
和REDIS_CLI這兩個路徑需要注意的是,它的路徑是你Redis安裝包路徑下面的redis-server 和
redis-cli
REDIS_CLI=
/usr/local/bin/redis-cli
PIDFILE=
/var/run/redis
.pid
CONF=
"/etc/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
以上實現以後,你還需要修改redis.conf檔案,將 daemonize no 改為 daemonize yes,讓它在後臺作為daemon執行。
設定開機啟動服務
chkconfig redis on
然後就可以開啟 Redis服務了,命令: service redis start 。關閉命令: service redis stop.
4. 檢視Redis服務是否開啟
通過命令: ps -ef|grep redis 可以檢視它的服務是否開啟。