linux下redis的安裝

來源:互聯網
上載者:User

 

源地址:http://hanqunfeng.javaeye.com/blog/684108

安裝redis版本為1.2.6

 

一。下載redis

:http://code.google.com/p/redis/downloads/list

選擇redis-1.2.6.tar.gz  將該下載包拷貝到/usr/local/redis下(隨意了,找個地方就好)

 

二。安裝

cd /usr/local/redis

tar zxvf redis-redis-1.2.6.tar.gz
cd redis-redis-1.2.6
make

 

由於沒有make install,所以得把原始碼目錄裡的關鍵檔案手動複製到適當的位置:

cp redis.conf /etc/ #看到一些資料都是這麼做的,搞不懂為什麼一定要放到那裡

cp redis-benchmark redis-cli redis-server /usr/bin/ #這個倒是很有用,這樣就不用再執行時加上./了,而且可以在任何地方執行

 

如果記憶體情況比較緊張的話,需要設定核心參數:

      echo 1 > /proc/sys/vm/overcommit_memory

這裡說一下這個配置的含義:

/proc/sys/vm/overcommit_memory
該檔案指定了核心針對記憶體配置的策略,其值可以是0、1、2。
0, 表示核心將檢查是否有足夠的可用記憶體供應用進程使用;如果有足夠的可用記憶體,記憶體申請允許;否則,記憶體申請失敗,並把錯誤返回給應用進程。
1, 表示核心允許分配所有的實體記憶體,而不管當前的記憶體狀態如何。
2, 表示核心允許分配超過所有實體記憶體和交換空間總和的記憶體

 

然後編輯redis.conf設定檔(/etc/redis.conf),按需求做出適當調整,比如:

daemonize yes #轉為守護進程,否則啟動時會每隔5秒輸出一行監控資訊
save 60 1000 #減小改變次數,其實這個可以根據情況進行指定
maxmemory 256000000 #分配256M記憶體

 

最後還要開放redis的連接埠,否則用戶端無法串連。方法如下:

vi /etc/sysconfig/iptables #需要具備其修改許可權

 

增加一行:

# redis
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

 

儲存後重啟iptables:

service iptables restart (PATH中加入了/sbin/)或者 /etc/init.d/iptables restart

 

三。驗證

1.啟動服務:

redis-server /etc/redis.conf

  1. [wap@hanqunfeng redis-1.2.6]$ redis-server /etc/redis.conf   
  2. New pid: 12776  

查看是否redis已經啟動: 

  1. [wap@hanqunfeng redis-1.2.6]$ ps -ef | grep redis  
  2. wap      12776     1  0 15:15 ?        00:00:00 redis-server /etc/redis.conf  
  3. wap      12782 12751  0 15:17 pts/2    00:00:00 grep redis  

 

 2.存取值

Java代碼 
  1. [wap@hanqunfeng redis-1.2.6]$ redis-cli set name value  
  2. OK  
  3. [wap@hanqunfeng redis-1.2.6]$ redis-cli get name  
  4. value  

 

3.關閉服務

  1. [wap@hanqunfeng redis-1.2.6]$ redis-cli shutdown  

 如果連接埠變化可以指定連接埠: redis-cli -p 6380 shutdown

 

這時記憶體中的資料會自動寫入到硬碟,檔案地址是在redis.conf裡配置的:

dbfilename dump.rdb

 

說明:資料備份可以通過定期備份該檔案實現。

 

另外,從網上看到說redis不能將記憶體資料轉存到硬碟上,這個問題我也遇到了,後來發現是使用者權限的問題,最開始啟動redis我使用的root使用者,後來使用wap使用者就發現不能將資料寫入硬碟,這是因為dump.rdb已經是root許可權了,不知道說redis不能儲存到硬碟的人是不是和我犯了同樣的錯誤。

 

另外,我發現執行redis-benchmark命令時也會將記憶體資料寫入硬碟。

redis-benchmark:檢查當前機器的處理效能。

 

4.重啟服務後再次取值,取值成功

  1. [wap@hanqunfeng redis-1.2.6]$   
  2. [wap@hanqunfeng redis-1.2.6]$ redis-server /etc/redis.conf   
  3. New pid: 12797  
  4. [wap@hanqunfeng redis-1.2.6]$ redis-cli get name  
  5. value  

 

5.強制儲存記憶體資料到硬碟

因為redis是非同步寫入磁碟的,如果要讓記憶體中的資料馬上寫入硬碟可以執行如下命令:

redis-cli save 或者 redis-cli -p 6380 save(指定連接埠)

 

注意,以上部署操作需要具備一定的許可權,比如複製和設定核心參數等。

 

ok,redis配置完成。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.