redis 安裝配置和常用命令

redis內存數據庫(緩存服務器)適合高併發的讀寫應用場景,超越磁盤IO讀寫的瓶頸。


*****************redis適用場合****************

1.取最新N個數據的操作

2.排行榜應用,取TOP N 操作

3.需要精確設定過期時間的應用

4.計數器應用

5.Uniq操作,獲取某段時間所有數據排重值

6.實時系統,反垃圾系統

7.Pub/Sub構建實時消息系統

8.構建隊列系統

9.緩存

*****************安裝配置****************

安裝redis之前先要安裝tcl


[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. .make test報錯:  
  2.   
  3. You need tcl 8.5 or newer in order to run the Redis test  
  4. make: *** [test] Error 1  
  5.   
  6.   
  7. 安裝 Tcl  
  8.   
  9. tar zxvf  tcl8.6.0-src.tar.gz  
  10.   
  11. cd tcl8.6.0/unix  
  12.   
  13. ./configure  
  14.   
  15. make  
  16.   
  17. make install  
  18.   
  19. chmod -v 755 /usr/lib/libtcl8.6.so  

1下載安裝

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. 目前最新穩定版本爲:redis-2.8.17.tar.gz  
  2.   
  3. http://download.redis.io/releases/redis-2.8.17.tar.gz  
  4.   
  5. (查看Liunx版本方式:getconf LONG_BIT)  
  6. 如果是32位:make CFLAGS="-march=i686"  
  7. 如果是64位:make  
  8.   
  9. 要是編譯失敗(make clean)  
  10.   
  11. cd /opt/portal/redis/redis-2.8.8/src  
  12. make test  
  13. make install    

2配置文件目錄結構

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. Redis 由四個可執行文件:redis-benchmark、<span style="color:#ff0000;">redis-cli、redis-server 、redis-sentinel</span>這4個文件,加上一個redis.conf就構成了整個redis的最終可用包。它們的作用如下:  
  2. redis-server:Redis服務器的daemon啓動程序  
  3. redis-cli:Redis命令行操作工具。當然,你也可以用telnet根據其純文本協議來操作  
  4. redis-benchmark:Redis性能測試工具,測試Redis在你的系統及你的配置下的讀寫性能  
  5. redis-sentinel:redis的監控,配置後檢測到master down 會將slave升級爲master  
  6. 現在就可以啓動redis了,redis只有一個啓動參數,就是他的配置文件路徑。  

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. 移動配置文件位置(爲了便於管理)  
  2.   
  3. mkdir -p /opt/portal/redis/bin  
  4.   
  5. mkdir -p /opt/portal/redis/conf  
  6.   
  7. mkdir -p /opt/portal/redis/logs  
  8.   
  9. cd /opt/portal/redis/redis-2.8.8  
  10.   
  11. cp redis.conf sentinel.conf /opt/portal/redis/conf  
  12.   
  13. cd /opt/portal/redis/redis-2.8.8/src  
  14.   
  15. cp  redis-server redis-cli redis-sentinel redis-benchmark  mkreleasehdr.sh redis-check-aof redis-check-dump   /opt/portal/redis/bin  

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <span style="color:#ff0000;">設置別名</span>  
  2. vi /etc/profile  
  3. alias redis-server='/opt/portal/redis/bin/redis-server /opt/portal/redis/conf/redis.conf'  
  4. alias redis-cli='/opt/portal/redis/bin/redis-cli'  
  5. 使配置文件生效  
  6. . /etc/profile  

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. <h2>3.修改配置文件 </h2>  
  2. vi /opt/portal/redis/conf/redis.conf  
  3.   
  4. 一、將daemonize no 中no改爲yes [以守護進程方式啓動進程]  
  5. 二、如果是slave 需要配置說明他的master是誰:<span style="color:#ff0000;">slaveof 192.168.14.191 6379</span>  
  6.   
  7. 4.啓動/隨機啓動:  
  8.   
  9. cd /opt/portal/redis/bin  
  10.   
  11. ./redis-server /opt/portal/redis/conf/redis.conf  #啓動redis並指定配置文件。  
  12.   
  13. #vi /etc/rc.local #設置隨機啓動。  
  14.   
  15. /opt/portal/redis/bin/redis-server /opt/portal/redis/conf/redis.conf  
  16.   
  17. 5.查看是否啓動成功   
  18.   
  19. ps -ef | grep redis  
  20.   
  21. netstat -tunpl | grep 6379#查看端口是否佔用。  
  22.   
  23. 6.進入客戶端/退出   
  24.   
  25. cd /opt/portal/redis/bin  
  26.   
  27. ./redis-cli #進入  
  28.   
  29. quit #退出  ctrl+c  
  30.   
  31. 7.關閉redis    
  32.   
  33. pkill redis-server  #關閉  
  34.   
  35. ./redis-cli shutdown #關閉  
  36. ./redis-cli -p 6397 shutdown //關閉6397端口的redis  
  37. 說明:關閉以後緩存數據會自動dump到硬盤上,硬盤地址見redis.conf中的dbfilename dump.rdb  

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. daemonize    如果需要在後臺運行,把該項改爲yes    
  2.   
  3. pidfile      配置多個pid的地址 默認在/var/run/redis.pid  
  4.   
  5. bind 綁定ip,設置後只接受來自該ip的請求  
  6.   
  7. port 監聽端口,默認爲6379  
  8.   
  9. timeout      設置客戶端連接時的超時時間,單位爲秒  
  10.   
  11. loglevel     分爲4級,debug、verbose、notice、warning  
  12.   
  13. logfile      配置log文件地址  
  14.   
  15. databases    設置數據庫的個數,默認使用的數據庫爲0  
  16.   
  17. save * *     保存快照的頻率,第一個*表示多長時間,第二個*表示執行多少次寫操作。在一定時間內執行一定數量的寫操作時,自動保存快照。  
  18.   
  19. rdbcompression    在進行鏡像備份時,是否進行壓縮  
  20.   
  21. Dbfilename        鏡像備份文件的文件名  
  22.   
  23. Dir   數據庫鏡像備份的文件放置路徑  
  24.   
  25. Slaveof     設置數據庫爲其他數據庫的從數據庫  
  26.   
  27. Masterauth 主數據庫連接需要的密碼驗證  
  28.   
  29. Requirepass     設置登錄時需要使用的密碼  
  30.   
  31. Maxclients 限制同時連接的客戶數量  
  32.   
  33. Maxmemory 設置redis能夠使用的最大內存  
  34.   
  35. Appendonly 是否開啓appendonlylog,開啓的話每次寫操作會記一條log,這會提高數據抗風險能力,但影響效率。  
  36. Appendfsync 設置對appendonly.aof文件同步的頻率  
  37.   
  38. 以下了解即可:  
  39.   
  40.   
  41.   
  42. vm-enabled 是否開啓虛擬內存支持  
  43.   
  44. vm-swap-file 設置虛擬內存的交換文件路徑  
  45.   
  46. vm-max-memory 設置redis使用的最大物理內存大小  
  47.   
  48. vm-page-size 設置虛擬內存的頁大小  
  49.   
  50. vm-pages 設置交換文件的總的page數量  
  51.   
  52. vm-max-threads 設置VM IO同時使用的線程數量  
  53.   
  54. Glueoutputbuf 把小的輸出緩存存放在一起  
  55.   
  56. hash-max-zipmap-entries 設置hash的臨界值  
  57.   
  58. Activerehashing 重新hash  

4常用命令

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. select num#選擇庫,默認在0庫,共16個庫  
  2.   
  3. auth liweijie#授權用戶所需密碼(密碼就是redis.conf中配置的密碼)  
  4. quit/exit/crtl+C#退出客戶端  
  5.   
  6. dbsize#返回庫裏的鍵的個數。  
  7.   
  8. info#顯示redis服務器的相關信息。  
  9.   
  10. config get */loglevel #返回所有/指定的配置信息。  
  11.   
  12. flushdb#刪除當前庫中的所有鍵/表。  
  13.   
  14. flushall#刪除所有數據庫中的所有鍵/表  
  15.   
  16. keys * #查詢所有  
  17.   
  18. keys user*#查詢指定的  
  19.   
  20. exists user:001#判斷是否存在。  
  21.   
  22. del name#刪除指定的鍵。  
  23.   
  24. expire addr 10#設置過期時間  
  25.   
  26. ttl addr#查詢過期時間time to live  
  27.   
  28. move age 1#將age移到1數據庫。  
  29.   
  30. get age #獲取  
  31.   
  32. persist age#移除age的過期時間。  
  33.   
  34. randomkey#隨機返回一個key  
  35.   
  36. rename name1 name2#重命名鍵  
  37.   
  38. type myset#返回鍵的類型。  
  39.   
  40. ping #測試redis連接是否存活。  
  41.   
  42. echo lamp#輸出一個lamp  


5、Redis持久化機制:  *****************************************************

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. 1.兩種方式:一、備份數據到磁盤(快照)[ snapshotting(快照)也是默認方式],主從複製也是通過rdb方式  
  2.   
  3.   
  4.        二、記錄操作命令[ Append-only file(縮寫aof)的方式]  
  5.   
  6.   
  7. 一、備份數據到磁盤(快照)[ snapshotting(快照)也是默認方式]   
  8.   
  9.   
  10.     save 900 1 #900秒內如果超過1個key被修改,則發起快照保存  
  11.   
  12.   
  13.     save 300 10 #300秒內容如超過10個key被修改,則發起快照保存  
  14.   
  15.   
  16.     save 60 10000  
  17.     一定時間間隔內對Redis做一次快照,如果Redis意外Down,而還沒有執行快照,那麼最後一次快照的數據將會丟失。  
  18.   
  19.   
  20. 二、記錄操作命令[ Append-only file(縮寫aof)的方式](較安全持久化)   
  21.   
  22.   
  23.     appendonly yes #啓用aof 持久化方式   
  24.   
  25.   
  26.     # appendfsync always //收到寫命令就立即寫入磁盤,最慢,但是保證完全的持久化   
  27.   
  28.   
  29.     appendfsync everysec //每秒鐘寫入磁盤一次,在性能和持久化方面做了很好的折中  
  30.   
  31.   
  32.     # appendfsync no //完全依賴os,性能最好,持久化沒保證  


6.消息訂閱***************************************************************


[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. public tv1 message1  發佈消息  
  2. subscribe tv1             訂閱tv1  

7狀態&性能監控

[html] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. 安全監控-Sentinel  
  2. Sentinel是 Redis 自帶的工具,它可以對 Redis 主從複製進行監控,並實現主掛掉之後的自動故障轉移。  
  3. 在轉移的過程中,它還可以被配置去執行一個用戶自定義的腳本,在腳本中我們就能夠實現報警通知等功能。  
  4.   
  5.   
  6. 性能監控-Redis Live  
  7. Redis Live是一個更通用的 Redis 監控方案,它的原理是定時在 Redis 上執行MONITOR命令,  
  8. 來獲取當前 Redis 當前正在執行的命令,並通過統計分析,生成web頁面的可視化分析報表。  
  9.   
  10.   
  11. 數據分佈  
  12. -Redis-sampler  
  13. Redis-sampler是 Redis 作者開發的工具,它通過採用的方法,能夠讓你瞭解到當前 Redis 中的數據的大致類型,數據及分佈狀況。  
  14.   
  15. -Redis-audit  
  16. Redis-audit是一個腳本,通過它,我們可以知道每一類 key 對內存的使用量。它可以提供的數據有:某一類 key 值的訪問頻率如何,  
  17. 有多少值設置了過期時間,某一類 key 值使用內存的大小,這很方便讓我們能排查哪些 key 不常用或者壓根不用。  
  18.   
  19. -Redis-rdb-tools  
  20. Redis-rdb-tools跟 Redis-audit 功能類似,不同的是它是通過對 rdb 文件進行分析來取得統計數據的。  
  21.   
  22.   
  23. 1、redis-benchmark   
  24. redis基準信息,redis服務器性能檢測   
  25.   
  26. redis-benchmark -h localhost -p 6379 -c 100 -n 100000   
  27. 100個併發連接,100000個請求,檢測host爲localhost 端口爲6379的redis服務器性能   
  28.    
  29. 2、redis-cli   
  30.   
  31. redis-cli -h localhost -p 6379 monitor   
  32. Dump all the received requests in real time;   
  33. 監控host爲localhost,端口爲6379,redis的連接及讀寫操作   
  34.    
  35. redis-cli -h localhost -p 6379 info   
  36. Provide information and statistics about the server ;   
  37. 提供host爲localhost,端口爲6379,redis服務的統計信息  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章