前面小Alan給大家說了jdk的安裝,這篇跟大家聊聊redis非關係型資料庫在Linux伺服器的安裝。 redis簡單介紹 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。 Redis是一個開源的使用AN ...
前面小Alan給大家說了jdk的安裝,這篇跟大家聊聊redis非關係型資料庫在Linux伺服器的安裝。
redis簡單介紹
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
它通常被稱為數據結構伺服器,因為值(value)可以是 字元串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
一、在有外網情況下的安裝(外網的配置在linux分類的隨筆中有聊過)
第一步:安裝編譯工具,redis是有ANSI C語言編寫的,我們需要安裝編譯它的工具
命令:yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
第二步:安裝tcl組件包,我們在安裝redis的時候是需要tcl腳本語言支持的
#選擇一個存放軟體包存放的地方,進入軟體包存放的目錄文件中
命令:cd /usr/local/src
#下載tcl組件包
命令:wget http://downloads.sourceforge.net/tcl/tcl8.6.6-src.tar.gz
#在當前目錄解壓tcl組件包
命令:tar zxvf tcl8.6.6-src.tar.gz
#進入解壓之後的安裝目錄文件
命令:cd tcl8.6.6
#配置tcl組件
命令:cd unix
命令:./configure --prefix=/usr --without-tzdata --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit)
#編譯
命令:make
#以選項中指定的script來處理輸入的文本文件
命令:sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" -i tclConfig.sh
#安裝
命令:make install
命令:make install-private-headers
#建立軟連接(好比windows中的快捷方式)
命令:ln -v -sf tclsh8.6 /usr/bin/tclsh
#修改執行文件許可權
命令:chmod -v 755 /usr/lib/libtcl8.6.so
第三步:安裝Redis資料庫
#選擇一個存放軟體包存放的地方,進入軟體包存放的目錄文件中
命令:cd /usr/local/src
#下載redis資料庫軟體包
命令:wget http://download.redis.io/redis-stable.tar.gz
#解壓redis資料庫軟體包
命令:tar -zxvf redis-stable.tar.gz
#創建redis的安裝目錄文件
命令:mkdir /usr/local/redis
#移動文件到安裝目錄
命令:mv redis-stable /usr/local/redis
#進入安裝目錄
命令:cd /usr/local/redis
#編譯
命令:make
#安裝
命令:make install
#然後查看/usr/local/bin目錄下是否有redis的程式文件,如果沒有,則從redis-stable中拷貝redis的程式文件
命令:cd /usr/local/bin
命令:ls
#註意:假如沒有則拷貝
命令:cd /usr/local/redis/redis-stable
命令:mkdir -p /usr/local/bin
#複製操作
命令:cp -p redis-server /usr/local/bin
命令:cp -p redis-benchmark /usr/local/bin
命令:cp -p redis-cli /usr/local/bin
命令:cp -p redis-check-dump /usr/local/bin
命令:cp -p redis-check-aof /usr/local/bin
#給redis的配置文件創建一個軟連接(好比windows中的快捷方式)
命令:ln -s /usr/local/redis/redis-stable/redis.conf /etc/redis.conf
#編輯redis配置文件
命令:vi /etc/redis.conf
#設置後臺啟動redis(vim編輯器按i進入編輯模式,exit退出編輯模式進入命令模式)
daemonize yes
#強制保存退出
:wq!
#切換到/usr/local/bin目錄啟動redis服務(cd切換命令)
命令:redis-server /etc/redis.conf
#關閉redis服務
命令:redis-cli shutdown
#編輯,在最後一行添加下麵代碼
命令:vi /etc/sysctl.conf
vm.overcommit_memory = 1
#強制保存退出
:wq!
#使設置立即生效
命令:sysctl -p
第四步:設置redis在linux伺服器上開機啟動
#把redis工具中的初始化腳本拷貝到/etc/init.d/目錄文件中並重命名
命令:cd /usr/local/redis/redis-stable/utils/
命令:cp redis_init_script /etc/init.d/
命令:cd /etc/init.d/
命令:mv redis_init_script redis
#修改腳本執行許可權
命令:chmod 755 /etc/init.d/redis
#添加開機啟動
命令:chkconfig --add redis
這時大家可能會遇到問題,就是無法將redis添加到開機啟動中,那麼要怎麼解決呢?
#編輯/etc/init.d/redis文件
命令:vi /etc/init.d/redis(i進入編輯模式,exit返回命令模式:wq!強制保存退出)
在最前面加上兩行註釋放在/etc/init.d/redis文件靠前的註釋中:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
上面的註釋的意思是,redis服務必須在運行級2,3,4,5下被啟動或關閉,啟動的優先順序是90,關閉的優先順序是10。
#添加開機啟動
命令:chkconfig --add redis
#把redis在運行級別為2、3、4、5的情況下都是on(開啟)的狀態
命令:chkconfig –level redis 2345 on
#查看是否添加成功,列出所有的系統服務,查看裡面是否有redis
命令:chkconfig --list
#關閉redis服務,啟動redis服務
命令:service redis stop
命令:service redis start
最後一步:測試redis是否已經成功啟動服務
#查看本機ip地址
#使用第三方jar包jedis在本地的java應用程式中進行測試
我相信很多人,在執行的時候肯定會不通過,比如連接超時之類的,這是為什麼呢?讓我們一一來解決:
1.查看redis配置文件,併排查問題,編輯之後保存
命令:vi /etc/redis.conf
第一個可能存在的問題,ip被綁定了,其他ip無法訪問:
將綁定ip這個屬性註釋掉,繼續排查,還有一個可能存在的問題,開啟了保護模式:
將它從yes改為no,然後執行java程式測試,很多人可能還是會遇到類似的錯誤,比如:
經過前面的操作,我們可以確定redis服務是啟動的,ip埠的設置也是正確的,保護模式也被我們關了,還不能訪問,那很大可能就是Linux防火牆導致其他電腦無法訪問redis的6379埠了,我們現在windows上測試一下,通過cmd打開命令視窗,telnet命令如果不能使用,自己百度一下開啟。
命令:telnet 192.168.0.21 6379
如果很久都沒反應,或者出現了錯誤,則需要在Linux伺服器上關掉防火牆或者添加此埠允許被訪問。
#通過root用戶登錄Linux伺服器,執行命令開啟埠
命令:/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
然後再執行Java應用程式測試一波,基本上就沒什麼問題了,也能得到像上面那樣的正確的結果。
二、在沒有外網情況下的安裝,假設此時只有區域網怎麼辦
第一步:將Linux伺服器對應的鏡像文件掛載到/mnt目錄文件下
比如:mount -o loop /data/downloads/redhat/rhel-server-6.5-x86_64-dvd.iso /mnt
#鏡像文件包中包含了大多數玩轉Linux所需的軟體
cd /mnt/Packages
第二步:安裝gcc編譯工具,相關安裝包從centos6.6.iso鏡像文件的package包中獲取
執行以下的命令:
rpm -ivh mpfr-2.4.1-6.el6.i686.rpm 回車
rpm -ivh cpp-4.4.6-4.el6.i686.rpm 回車
rpm -ivh kernel-headers-2.6.32-279.el6.i686.rpm 回車
rpm -ivh glibc-headers-2.12-1.80.el6.i686.rpm 回車
rpm -ivh glibc-devel-2.12-1.80.el6.i686.rpm 回車
rpm -ivh libgomp-4.4.6-4.el6.i686.rpm 回車
rpm -ivh ppl-0.10.2-11.el6.i686.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.i686.rpm 回車
rpm -ivh gcc-4.4.6-4.el6.i686.rpm 回車
rpm -ivh libstdc++-devel-4.4.7-11.el6.x86_64.rpm 回車
rpm -ivh gcc-c++-4.4.6-4.el6.i686.rpm 回車
如果error: Failed dependencies: cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.x86_64
安裝gcc及其他依賴包的時候,加上參數 --force --nodeps
例如:
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm --nodeps --force
#rpm卸載命令
rpm -e --nodeps gcc-4.4.7-4.el6.x86_64
#卸載掛載的資源
umount /mnt
第三步,將下載好的tcl組件包安裝到Linux伺服器中
將文件copy到 /usr/local/src 目錄下(隨意目錄)
chmod 777 tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/nuix
./configure 或者 ./configure --prefix=/usr/local/tcl8.6.1/ --enable-shared
make
make install
第四步:將下載好的redis資料庫安裝包安裝到Linux伺服器中
將文件copy到 /usr/local/src 目錄下(隨意目錄)
chmod 777 redis-2.8.8.tar.gz
tar xzf redis-2.8.8.tar.gz
cd redis-2.8.8
make MALLOC=libc
make test
make install
後面這種方式就大概給大家提個思路,你完全可以自己結合上面詳細的線上安裝的方式去實現沒有外網時候的安裝,這裡主要的區別就是沒有外網的時候gcc編譯工具可以從掛載的ios鏡像中去獲取,然後所有的安裝包都是已經下載好的,需要自己上傳到Linux伺服器中,上傳的方式可以參考上一篇隨筆Linux伺服器安裝JDK運行環境教程。
結束語:不驚擾別人的寧靜,就是慈悲; 不傷害別人的自尊,就是善良。 人活著,發自己的光就好,不要吹滅別人的燈。
可愛博主:AlanLee
博客地址:http://www.cnblogs.com/AlanLee
本文出自博客園,歡迎大家加入博客園。