溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis 3.0 編譯安裝

發布時間:2020-07-04 06:42:38 來源:網絡 閱讀:580 作者:鵬愛 欄目:數據庫

官方主站:http://www.redis.io/

下載地址:http://www.redis.cn/download.html

Command API: http://www.redis.cn/commands.html
      Redis官方文檔:http://redis.io/documentation

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

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

2.安裝tcmalloc包[ 嘗試采用新的內存分配方式 ]
Redis并沒有自己實現內存池,沒有在標準的系統內存分配器上再加上自己的東西。
所以系統內存分配器的性能及碎片率會對Redis造成一些性能上的影響。
在最新版本中,jemalloc已經作為源碼包的一部分包含在源碼包中,所以可以直接被使用。
如果要使用tcmalloc的話,是需要自己安裝的。

tcmalloc是google-proftools( http://code.google.com/p/gperftools/downloads/list)中的一部分,
所以我們實際上需要安裝google-proftools。如果你是在64位機器上進行安裝,需要先安裝其依賴的libunwind庫,32位的系統不需要
下載地址: 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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女