Linux下安裝Redis

1. 安裝依賴包

首先,安裝Redis所依賴的TCL工具包。 html

# 下載
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
# 解壓縮
tar -xf tcl8.6.0-html.tar.gz
# 配置安裝
cd unix &&
./configure --prefix=/usr           \
            --without-tzdata        \
            --mandir=/usr/share/man \
            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make &&
sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \
    -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
    -i tclConfig.sh
# 測試make是否成功
make test

# root用戶登陸,執行下面命令
make install &&
make install-private-headers &&
ln -v -sf tclsh8.6 /usr/bin/tclsh &&
chmod -v 755 /usr/lib/libtcl8.6.so

    有關TCL的更詳細的說明,請見 http://www.linuxfromscratch.org/blfs/view/svn/general/tcl.html linux

2. 安裝Redis

    下面,就能夠安裝Redis了。 git

# 下載redis穩定版,解壓縮並安裝
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-3.0.0.tar.gz
cd redis-3.0.0 make
# 測試make是否成功
make test
make install

    而後能夠進入redis目錄,嘗試啓動redis github

./src/redis-server redis.conf

    至此redis安裝已經完成了。 redis

    在make test中可能會遇到時間相關的失敗,好比 shell

Executing test client: NOREPLICAS Not enough good slaves to write.. 服務器

    這種狀況下,能夠修改文件tests/integration/replication-2.tcl,將after 1000改成after 10000以延長等待時間。 ide

    更多關於Redis安裝的信息,請見 http://redis.io/download svn

3. C客戶端hiredis

    若是想要使用C程序調用Redis,安裝官方C客戶端hiredis。方便的是,目前的redis下載包中已經包含了hiredis的安裝包,只須要到redis安裝目錄下,執行如下命令便可: 工具

# 進入hiredis文件夾並安裝
cd /deps/hiredis
make
# 測試make是否成功
make test
# 使用root用戶,安裝動態文件文件,並更新
make install
/sbin/ldconfig /usr/local/lib

    能夠執行hiredis文件夾下的hiredis-example來測試hiredis是否成功安裝。

./hiredis-example
     hiredis-example由example.c編譯而成,包括了簡單的redis經過C鏈接調用的例子,也能夠本身從新編譯一遍
cc example.c -lhiredis
./a.out

    關於hiredis的更多說明,能夠參照 https://github.com/redis/hiredis

4. Python客戶端redis-py

    redis的Python客戶端目前尚不存在官方版本,可是官方推薦的爲redis-py。在安裝完redis服務器後,執行下面命令安裝redis-py。
pip install redis
     redis-py經過解析器(Parser)來解析Redis服務器的響應內容,目前有兩種解析器可用,分別是PythonParser和HiredisParser。redis-py的默認解析器是HiredisParser,若是不存在則使用PythonParser。推薦安裝使用Hiredis進行解析,由於相比Python解析,它提高了10倍的解析速度。

    安裝Hiredis:

pip install hiredis
    redis-py還實現了鏈接池等功能。

    關於redis-py的更多說明,能夠參照 https://github.com/andymccurdy/redis-py

5. 高級設置

    最後,配置生產環境,並設置redis的開機啓動。

    首先,創建存放redis配置文件和持久化RDB數據的文件夾:

sudo mkdir /etc/redis
sudo mkdir /var/redis
    拷貝redis的啓動腳本到/etc/init.d文件夾中:
sudo cp utils/redis_init_script /etc/init.d/redis_6379
    拷貝redis的配置文件到/etc/redis中,而且以端口號做爲文件名:
sudo cp redis.conf /etc/redis/6379.conf
    在/var/redis中建立文件夾做爲redis實例的數據和工做目錄:
sudo mkdir /var/redis/6379

    按下面要求修改配置文件:
  • 設置 demonize 爲 yes(默認是no)
  • 設置 pidfile 爲 /var/run/redis_6379.pid
  • 設置 loglevel 爲相應級別
  • 設置 logfile 爲 /var/log/redis_6379.log
  • 設置 dir 爲 /var/redis/6379

    最後,設置redis實例的開機啓動。在Ubuntu上直接運行:

sudo update-rc.d redis_6379 defaults
    若是是CentOS,修改/etc/init.d/redis_6379,添加下面內容:

# Provides:		redis-server
# Required-Start:	$syslog
# Required-Stop:	$syslog
# Should-Start:		$local_fs
# Should-Stop:		$local_fs
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	redis-server - Persistent key-value db
# Description:		redis-server - Persistent key-value db
### END INIT INFO
    而後執行chkconfig便可。

sudo chkconfig --add redis_6379

    關於配置的更多內容,參照 http://redis.io/topics/quickstart


持久化內存問題:

    Redis在持久化時會從新啓動一個進程,佔用的內存資源與Redis實例相同,所以可能會形成內存不足,產生難以預知的後果。爲了防止該事件發生,能夠將overcommit_memory設置爲1。

    設置方法:

    1. 修改文件/etc/sysctl.conf,添加

        vm.overcommit_memory = 1

        而後從新啓動。

    2. 執行命令sysctl vm.overcommit_memory=1

        這樣在下次啓動時會恢復默認設置,所以仍然須要在/etc/sysctl.conf中添加。

相關文章
相關標籤/搜索