【Redis】Redis 2.8.x 原始碼安裝、配置

神諭丶發表於2016-08-08
【安裝&初始化安裝】
〇 安裝依賴
  1. yum install -y tcl gcc gcc-c++
〇 獲取原始碼包、編譯安裝、檢查安裝
  1. wget
  2. tar xzvf redis-2.8.24.tar.gz
  3. cd redis-2.8.24
  4. make && make install
  5. cd src && make test

〇 初始化(可選)
  1. ../utils/install_server.sh
當然如果需要啟動多個例項,也可以透過該指令碼生成預設的配置檔案,日誌檔案,和datadir

初始化可以為其指定,也可以直接回車選擇預設:
  1. [root@sAno1y src]# ../utils/install_server.sh
  2. Welcome to the redis service installer
  3. This script will help you easily set up a running redis server
  4. Please select the redis port for this instance: [6379] # 為該redis例項配置埠號
  5. Selecting default: 6379
  6. Please select the redis config file name [/etc/redis/6379.conf] # 為該redis例項指定配置檔案
  7. Selected default - /etc/redis/6379.conf
  8. Please select the redis log file name [/var/log/redis_6379.log] /data/redis/log/6379.log # 為該redis例項指定日誌檔案
  9. Please select the data directory for this instance [/var/lib/redis/6379] /data/redis/6379_data # 為該redis例項指定datadir
  10. Please select the redis executable path [/usr/local/bin/redis-server] # 指定執行path
  11. Selected config:
  12. Port : 6379
  13. Config file : /etc/redis/6379.conf
  14. Log file : /data/redis/log/6379.log
  15. Data dir : /data/redis/6379_data
  16. Executable : /usr/local/bin/redis-server
  17. Cli Executable : /usr/local/bin/redis-cli
  18. Is this ok? Then press ENTER to go on or Ctrl-C to abort. # 回車確認,反之ctrl+c中斷上述操作
  19. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  20. Installing service...
  21. Successfully added to chkconfig!
  22. Successfully added to runlevels 345!
  23. Starting Redis server...
  24. Installation successful!


【啟動&關閉】
〇 利用redis_init_script指令碼(該指令碼在原始碼目錄中的utils目錄下):
啟動:
  1. ./redis_init_script start
關閉:
  1. ./redis_init_script stop

當然可以將該指令碼cp到/etc/init.d/redis下,這樣可以透過service redis start/stop來直接操作,
如果處理多例項,需要修改該指令碼,將REDISPORT=6379改成對應的port即可。
如果執行了上一步驟中的install_server.sh指令碼,則預設將會在/etc/init.d/中有一個redis_$port的檔案……
其實是利用redis_init_script作為模板註冊成“服務”


〇 利用redis-server & redis-cli:
啟動:
  1. redis-server /etc/redis/6379.conf
 (若要啟動不同的例項,需要指定不同配置檔案)

關閉:
  1. redis-cli shutdown
 (預設引數為-h 127.0.0.1 -p 6379,若要關閉本機其他例項,需要指定不同的埠)


p.s.
redis_init_script實際上就是透過這redis-server和redis-cli來完成啟動和關閉的
開啟redis_init_script指令碼可以發現這兩個變數:
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli


【配置檔案】
預設有一個配置檔案的模板,在原始碼目錄中的redis.conf。
透過install_server.sh方式初始化例項,實際上也是將該檔案cp到使用者指定的目錄下,並更名為${REDIS_PORT}.conf。
預設值可以直接在redis-cli中檢視:
  1. redis 127.0.0.1:6379> config get *

配置檔案包括註釋總共約有800行,此處忽略註釋檔案給出一些重要引數的配置:
  1. ########## base setting ##########
  2. # redis將以守護模式執行
  3. daemonize yes
  4. # 指定pid檔案路徑
  5. pidfile /tmp/redis.pid
  6. # 例項埠號
  7. port 6379
  8. # 繫結主機ip
  9. bind 127.0.0.1
  10. # 當client閒置多久後釋放連線,若為0則表示禁用此功能
  11. timeout 300
  12. # 日誌級別,分別有debug、verbose、notice、warning,預設為verbose
  13. loglevel notice
  14. # 日誌輸出方式,預設為logfile stdout,也可以設定為logfile /dev/null,若daemonize yes則會強制將logfile設定為/dev/null
  15. logfile /data/redis/log/6379.log
  16. # 設定資料庫的數量
  17. databases 16
  18. # 設定Redis連線密碼,如果配置了連線密碼,客戶端在連線Redis時需要透過AUTH 命令提供密碼,預設關閉
  19. #requirepass password123

  20. # 指定在多長時間內,並統計到n次更新操作,就將資料同步到資料檔案(需同時滿足兩個條件),可以多個條件配合,單位為秒和次
  21. save 1800 1
  22. save 600 10
  23. save 300 1000
  24. # 設定是否將RDB檔案壓縮,消耗cpu但節省磁碟空間
  25. rdbcompression yes
  26. # RDB檔名,預設為dump.rdb
  27. dbfilename redis-master.rdb
  28. # RDB存放目錄
  29. dir /data/redis/6379_data

  30. # 設定同一時間最大客戶端連線數,若達到該值,新的連線會返回max number of clients reached,預設無限制(即設定為0)
  31. maxclients 0
  32. # 指定Redis最大記憶體限制,單位為bytes
  33. maxmemory 8589934592
  34. # 指定達到maxmemory時的過期策略,預設為volatile-lru
  35. # volatile-lru 根據LRU演算法,對設定了過期時間的key進行清理
  36. # allkeys-lru 根據LRU演算法,對無論是否設定過期時間的key進行清理
  37. # volatile-random 隨機刪除設定了過期時間的key
  38. # allkeys-random 隨機刪除無論是否設定了過期時間的key
  39. # volatile-ttl 刪除即將過期了的key
  40. # noeviction 不刪除任意資料,在寫操作時返回錯誤
  41. maxmemory-policy volatile-lru

  42. # 是否需要用append模式
  43. appendonly no
  44. # 指定append方式的檔名
  45. appendfilename appendonly.aof
  46. # 設定fsync的方式,其中可設定為no,everysec,always。
  47. # no表示不自主fsync(),等待作業系統決定何時落地到磁碟(最快)
  48. # always表示每次更新後就執行fsync()將資料寫到磁碟(最慢最安全)
  49. # everysec表示美妙執行一次fsync(),該值為預設
  50. appendfsync everysec
  51. ########## replication setting ##########
  52. # 如果該例項為slave,此處為指定master的ip和port
  53. #slaveof 0.0.0.0 6379
  54. # 如果master有密碼驗證,則需要指定master的密碼,
  55. #masterauth
  56. repl-diskless-sync no
  57. repl-diskless-sync-delay 5
  58. repl-ping-slave-period 10
  59. repl-timeout 60
  60. repl-disable-tcp-nodelay no


更多其他的配置或者是檢視上述配置的詳細介紹,在redis.conf中都可以找到。


作者微信公眾號(持續更新)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2123171/,如需轉載,請註明出處,否則將追究法律責任。

相關文章