Redis 3.0 編譯安裝

一.Redis 介紹:
Redis是Remote Dictionary Server的縮寫。他本質上一個Key/Value數據庫,與Memcached類似的NoSQL型數據庫,但是他的數據可以持久化的保存在磁盤上,解決了服務重啓後數據不丟失的問題,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的數據類型都具有push/pop、add/remove、執行服務端的並集、交集、兩個sets集中的差別等等操作,這些操作都是具有原子性的,Redis還支持各種不同的排序能力。


二. 準備工作

1.安裝相關依賴包:
yum -y install gcc gcc-c++ cmake make


2.×××:

下載地址: http://download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz

(1).安裝libunwind
tar zxvf libunwind-0.99-alpha.tar.gz
cd libunwind-0.99-alpha/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install

(2).安裝gperftools
tar zxvf gperftools-2.1.tar.gz
cd gperftools-2.1
./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal
make && make install
cd /usr/local/lib
ln -sv libtcmalloc_minimal.so.4.1.2 libtcmalloc.so
# 加粗部分如果不做的話,後面編譯redis會報錯: usr/bin/ld: cannot find ltcmalloc
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf #如果沒有這個文件,自己建一個
/sbin/ldconfig

3.Redis 安裝:

tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
mkdir -p /usr/local/redis-3.0
# make prefix= install
# 將redis安裝在/bin下/usr/local/redis-3.0/bin下
# make PREFIX=/usr/local/redis-3.0 install # 此方式安裝,使用linux默認的內存分配方式
make PREFIX=/usr/local/redis-3.0 USE_TCMALLOC=yes FORCE_LIBC_MALLOC=yes install


4.建相關目錄,並配置redis.conf 文件[簡單配置]
cd /usr/local/redis-3.0/
mkdir etc #存放配置文件,這裏目錄名,可建爲:conf
mkdir log #存放日誌和pid文件
mkdir data #存放數據
vim etc/redis.conf
daemonize yes
port 6379
pidfile /usr/local/redis-3.0/log/redis_6379.pid
dir /usr/local/redis-3.0/data
logfile /usr/local/redis-3.0/log/redis_6379.log

5.Redis服務啓動、關閉
(1).啓動服務:
/usr/local/redis-3.0/bin/redis-server /usr/local/redis-3.0/etc/redis.conf
注:
此命令僅有一個啓動參數,指定目錄下的配置文件,不加參數執行默認配置。
測試啓動:
/usr/local/redis-3.0/bin/redis-cli ping
返回PONG,則啓動成功。
查看端口是否被佔用:
netstat -ntlp |grep 6379

(2).關閉服務:
/usr/local/redis-3.0/bin/redis-cli shutdown
如果非默認端口,可指定端口:
/usr/local/redis-3.0/bin/redis-cli -p 6380 shutdown

(3).驗證redis內存分配方式是否在使用tcmalloc
lsof -n |grep tcmalloc
redis-ser 2754 root mem REG 253,0 1078467 1725996 /usr/local/lib/libtcmalloc_minimal.so.4.1.2

6.Redis 服務啓動腳本
redis 本身提供了redis安裝腳本:utils/install_server.sh
但 這個腳本包括安裝服務,有點煩,我們直接取其安裝腳本:
#!/bin/sh
#Configurations injected by install_server below....
EXEC=/usr/local/redis-3.0/bin/redis-server
CLIEXEC=/usr/local/redis-3.0/bin/redis-cli
PIDFILE=/usr/local/redis-3.0/log/redis_6379.pid
CONF="/usr/local/redis-3.0/etc/redis.conf"
REDISPORT="6379"

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
;;
status)
PID=$(cat $PIDFILE)
if [ ! -x /proc/${PID} ]
then
echo 'Redis is not running'
else
echo "Redis is running ($PID)"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Please use start, stop, restart or status as first argument"
;;
esac


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章