程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Redis教程 >> 關於Redis >> Linux下Redis安裝配置教程

Linux下Redis安裝配置教程

編輯:關於Redis

redis作為NoSQL數據庫的一種應用,響應速度和命中率上還是比較高效的。項目中需要用集中式可橫向擴展的緩存框架,做了一點調研,即便redis、memcached存在效率上的差異(具體比較參考http://timyang.net/data/mcdb-tt-redis/),但其實都能滿足目前項目的需求;但是redis還是比較風騷的,支持鏈表和集合操作,支持正則表達式查找key,目前項目緩存的結果大多是鏈表,如果鏈表新增或者修改數據的話,redis就體現出了極大的優勢(memcached只能重新加載鏈表,redis可以對鏈表新增或者修改)

1、下載redis
下載地址 http://code.google.com/p/redis/downloads/list
推薦下載redis-1.2.6.tar.gz,之前這個版本同事已經有成功安裝運行的經驗,redis-2.0.4.tar.gz 這個版本我安裝後無法操作緩存數據,具體原因後續再說

2、安裝redis
下載後解壓 tar zxvf redis-1.2.6.tar.gz 到任意目錄,例如/usr/local/redis-1.2.6

解壓後,進入redis目錄

  cd /usr/local/redis-1.2.6 
  make 

拷貝文件
cp redis.conf /etc/ 這個文件時redis啟動的配置文件
cp redis-benchmark redis-cli redis-server /usr/bin/ #這個倒是很有用,這樣就不用再執行時加上./了,而且可以在任何地方執行

設置內存分配策略(可選,根據服務器的實際情況進行設置)
/proc/sys/vm/overcommit_memory
可選值:0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存

值得注意的一點是,redis在dump數據的時候,會fork出一個子進程,理論上child進程所占用的內存和parent是一樣的,比如parent占用的內存為8G,這個時候也要同樣分配8G的內存給child,如果內存無法負擔,往往會造成redis服務器的down機或者IO負載過高,效率下降。所以這裡比較優化的內存分配策略應該設置為 1(表示內核允許分配所有的物理內存,而不管當前的內存狀態如何)

開啟redis端口,修改防火牆配置文件
    vi /etc/sysconfig/iptables 

加入端口配置
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT 

重新加載規則
    service iptables restart  

3、啟動redis服務

 [root@Architect redis-1.2.6]# pwd 
  /usr/local/redis-1.2.6 
  [root@Architect redis-1.2.6]# redis-server /etc/redis.conf 

查看進程,確認redis已經啟動

  [root@Architect redis-1.2.6]# ps -ef | grep redis 
  root    401 29222 0 18:06 pts/3  00:00:00 grep redis 
  root   29258   1 0 16:23 ?    00:00:00 redis-server /etc/redis.conf 

如果這裡啟動redis服務失敗,一般情況下是因為redis.conf文件有問題,建議檢查或找個可用的配置文件進行覆蓋,避免少走彎路,這裡建議,修改redis.conf,設置redis進程為後台守護進程

  # By default Redis does not run as a daemon. Use 'yes' if you need it. 
  # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 
  daemonize yes 

4、測試redis

  [root@Architect redis-1.2.6]# redis-cli 
  redis> set name songbin 
  OK 
  redis> get name  
  "songbin" 

5、關閉redis服務

    redis-cli shutdown 

redis服務關閉後,緩存數據會自動dump到硬盤上,硬盤地址為redis.conf中的配置項dbfilename dump.rdb所設定
強制備份數據到磁盤,使用如下命令

    redis-cli save 或者 redis-cli -p 6380 save(指定端口)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved