Redis是一個(gè)開(kāi)源的涧窒、支持網(wǎng)絡(luò)付魔、可基于內(nèi)存亦可持久化的日志型涵但、Key-Value數(shù)據(jù)庫(kù),在高并發(fā)的應(yīng)用系統(tǒng)中有很多應(yīng)用場(chǎng)景.簡(jiǎn)單介紹一下在linux 下如何安裝redis.
- 下載源碼編譯和安裝
3.2版本下載地址
Redis官網(wǎng)
root@iZ25j7qhlyuZ:/usr/lib# wget -c http://download.redis.io/releases/redis-3.2.0.tar.gz
下載完成之后在當(dāng)前目錄下會(huì)得到一個(gè)壓縮包redis-3.2.0.tar.gz,解壓
root@iZ25j7qhlyuZ:/usr/lib# tar -xzvf redis-3.2.0.tar.gz redis-3.2.0/
編譯和安裝
root@iZ25j7qhlyuZ:/usr/lib# cd redis-3.2.0/
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# make && make install
接下來(lái)輸出了一大堆日志,好難懂,應(yīng)該沒(méi)有ERROR就行
- 修改配置文件
首先修改內(nèi)存分配策略
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# vi /etc/sysctl.conf
在尾部添加
vm.overcommit_memory=1
0, 表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用叨吮;如果有足夠的可用內(nèi)存形纺,內(nèi)存申請(qǐng)?jiān)试S薇缅;否則危彩,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程泳桦。
1, 表示內(nèi)核允許分配所有的物理內(nèi)存汤徽,而不管當(dāng)前的內(nèi)存狀態(tài)如何。
2, 表示內(nèi)核允許分配超過(guò)所有物理內(nèi)存和交換空間總和的內(nèi)存灸撰。
保存
:wq
使其生效
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# sysctl vm.overcommit_memory=1
拷貝redis.conf到etc目錄下
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# cp -rvf redis.conf /etc/
然后編輯etc目錄下的redis.conf
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# vi /etc/redis.conf
daemonize yes #轉(zhuǎn)為守護(hù)進(jìn)程谒府,否則啟動(dòng)時(shí)會(huì)每隔5秒輸出一行監(jiān)控信息
save 60 1000 #保存快照的頻率,這里表示每分鐘1000次改變的話保存到磁盤(pán)
maxmemory 256000000 #分配內(nèi)存
rdbcompression:是否使用壓縮
dbfilename:數(shù)據(jù)快照文件名(只是文件名梧奢,不包括目錄)
dir:數(shù)據(jù)快照的保存目錄(這個(gè)是目錄)
requirepass yangkui 客戶端訪問(wèn)時(shí)的密碼(當(dāng)前密碼是yangkui)
...其他配置請(qǐng)參照官方文檔 官方文檔配置部分
保存
:wq
- 啟動(dòng)Redis和測(cè)試連接
啟動(dòng)Redis服務(wù)
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# redis-server /etc/redis.conf
查看Redis服務(wù)進(jìn)程看是否正常啟動(dòng)
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# ps -ef|grep redis
root 17896 1 0 17:22 ? 00:00:00 redis-server 127.0.0.1:6379
root 17903 14451 0 17:24 pts/0 00:00:00 grep --color=auto redis
啟動(dòng)正常,使用客戶端工具連接
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# redis-cli -h 127.0.0.1
127.0.0.1:6379>
連接正常,輸入密碼
127.0.0.1:6379> AUTH yangkui
OK
127.0.0.1:6379>
然后Redis 就可以用起來(lái)了
127.0.0.1:6379> set myblog yangkui.net
OK
127.0.0.1:6379> get myblog
"yangkui.net"
127.0.0.1:6379>
至此,一個(gè)Redis單機(jī)安裝完成.
- 補(bǔ)充,設(shè)置Redis開(kāi)機(jī)啟動(dòng)
- 編寫(xiě)開(kāi)機(jī)自啟動(dòng)腳本
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# cp ./utils/redis_init_script /etc/init.d/redis
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# vi /etc/init.d/redis
- 修改配置文件中注釋位置的路徑
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/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
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT -a yangkui 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
- 通過(guò)VI保存好之后,賦給它可執(zhí)行的權(quán)限和設(shè)置開(kāi)機(jī)啟動(dòng)
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# chmod 777 /etc/init.d/redis
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# vi /etc/rc.local #非Ubuntu系統(tǒng)的話通過(guò) chkconfig redis on來(lái)設(shè)置開(kāi)機(jī)啟動(dòng)
- 在exit 0 前面添加service redis start保存
service redis start
exit 0
~
- 測(cè)試下腳本是不是好使
先殺掉redis進(jìn)程,然后
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0# service redis start
Starting Redis server...
root@iZ25j7qhlyuZ:/usr/lib/redis-3.2.0#
大功告成了