vagrant系列四:vagrant搭建redis與redis的監控程序redis-stat

      網友投稿 675 2022-05-28

      原文: https://blog.csdn.net/hel12he/article/details/51138507

      redis的安裝

      哎,寫到這兒,說一句,詛咒聯通這網絡,聯通網絡一上,打開vpn,照樣不能訪問外網,聯baidu都一卡一卡的。

      redis就不用yum來進行安裝了。直接從官方下載來安裝吧。(老實說,我也不知道yum里邊有沒有redis的最新版)

      下載redis

      $ wget -c http://download.redis.io/releases/redis-3.0.7.tar.gz

      當然你也可以到redis官網 下載最新的版本。當然個人建議,開發中還是使用穩定版本吧!

      解壓redis

      $ tar -zxvf redis-3.0.7.tar.gz

      這個命令什么意思,我就不多說了,如果不清楚的同學,建議平時還是多積累點linux的命令知識額。加薪升職的利器額。

      編譯安裝redis

      $ cd redis-3.0.7

      $ make && make install

      進入到解壓后的目錄,然后執行編譯,然后安裝。

      OK,至此,我們的redis安裝還沒有完額,其實好玩兒的才剛剛開始呢。

      配置redis

      創建redis 配置文件夾。

      $ mkdir /etc/redis

      在/var/lib/redis 下創建有效的保存數據的目錄

      $ mkdir -p /var/lib/redis/6379

      vagrant系列四:vagrant搭建redis與redis的監控程序redis-stat

      redis.conf 是 redis 的配置文件,然而你會看到我們會把這個文件的名字改為 6379.conf ,而這個數字就是 redis 監聽的網絡端口。如果你想要運行超過一個的 redis 實例,推薦用這樣的名字。

      復制示例的 redis.conf 到 /etc/redis/6379.conf。

      $ cp redis.conf /etc/redis/6379.conf

      修改的內容如下:

      設置 daemonize 為 no,systemd 需要它運行在前臺,否則 redis 會突然掛掉。

      daemonize yes

      設置 pidfile 為 /var/run/redis_6379.pid。

      pidfile /var/run/redis_6379.pid

      如果不準備用默認端口,可以修改。

      port 6379

      設置日志級別。

      loglevel debug

      修改日志文件路徑。

      logfile /var/log/redis_6379.log

      設置目錄為 /var/lib/redis/6379

      dir /var/lib/redis/6379

      redis配置文件,各項的詳解

      ######################### 通用 #########################

      # 啟動后臺進程

      daemonize yes

      # 后臺進程的pid文件存儲位置

      pidfile /var/run/redis.pid

      # 默認監聽端口 port 6379 # 在高并發的環境中,為避免慢客戶端的連接問題,需要設置一個高速后臺日志 tcp-backlog 511 # 只接受以下綁定的IP請求 # Examples: # bind 192.168.1.100 10.0.0.1 bind 127.0.0.1 # 設置unix監聽,默認為空 # unixsocket /tmp/redis.sock # unixsocketperm 700 #客戶端空閑多長時間,關閉鏈接,0表示不關閉 timeout 0 # TCP keepalive. # 如果是非零值,當失去鏈接時,會使用SO_KEEPALIVE發送TCP ACKs 到客戶端。 # 這個參數有兩個作用: # 1.檢測斷點。 # 2.從網絡中間設備來看,就是保持鏈接 # 在Linux上,設定的時間就是發送ACKs的周期。 # 注意:達到雙倍的設定時間才會關閉鏈接。在其他內核上,周期依賴于內核設置。 # 一個比較合理的值為60s tcp-keepalive 0 # 指定日志級別,以下記錄信息依次遞減 # debug用于開發/測試 # verbose沒debug那么詳細 # notice適用于生產線 # warning只記錄非常重要的信息 loglevel notice #日志文件名稱,如果為stdout則輸出到標準輸出端,如果是以后臺進程運行則不產生日志 logfile "" # 要想啟用系統日志記錄器,設置一下選項為yes # syslog-enabled no # 指明syslog身份 # syslog-ident redis # 指明syslog設備。必須是一個用戶或者是local0 ~ local7之一 # syslog-facility local0 #設置數據庫數目,第一個數據庫編號為:0 databases 16 ######################### 快照 ######################### # 在什么條件下保存數據庫到磁盤,條件可以有很多個,滿足任何一個條件都會進行快照存儲 # 在900秒之內有一次key的變化 save 900 1 # 在300秒之內,有10個key的變化 save 300 10 # 在60秒之內有10000個key變化 save 60 10000 # 當持久化失敗的時候,是否繼續提供服務 stop-writes-on-bgsave-error yes # 當寫入磁盤時,是否使用LZF算法壓縮數據,默認為yes rdbcompression yes # 是否添加CRC64校驗到每個文件末尾--花費時間保證安全 rdbchecksum yes # 磁盤上數據庫的保存名稱 dbfilename dump.rdb # Redis工作目錄,以上數據庫保存文件和AOF日志都會寫入此目錄 dir ./ ######################### 主從同步 ######################### # 主從復制,當本機是slave時配置 # slaveof # 當主機需要密碼驗證時候配置 # masterauth # 當slave和master丟失鏈接,或正處于同步過程中。是否響應客戶端請求 # 設置為yes表示響應 # 設置為no,直接返回"SYNC with master in progress"(正在和主服務器同步中) slave-serve-stale-data yes # 設置slave是否為只讀。 # 注意:即使slave設置為只讀,也不能令其暴露在不受信任的網絡環境中 slave-read-only yes # 無硬盤復制功能 repl-diskless-sync no # 等待多個slave一起來請求之間的間隔時間 repl-diskless-sync-delay 5 # 設置slave給master發送ping的時間間隔 # repl-ping-slave-period 10 # 設置數據傳輸I/O,主機數據、ping響應超時時間,默認60s # 這個時間一定要比repl-ping-slave-period大,否則會不斷檢測到超時 # repl-timeout 60 # 是否在SYNC后slave socket上禁用TCP_NODELAY? # 如果你設置為yes,Redis會使用少量TCP報文和少量帶寬發送數據給slave。 # 但是這樣會在slave端出現延遲。如果使用Linux內核的默認設置,大概40毫秒。 # 如果你設置為no,那么在slave端研究就會減少但是同步帶寬要增加。 # 默認我們是為低延遲優化的。 # 但是如果流量特別大或者主從服務器相距比較遠,設置為yes比較合理。 repl-disable-tcp-nodelay no # 設置復制的后臺日志大小。 # 復制的后臺日志越大, slave 斷開連接及后來可能執行部分復制花的時間就越長。 # 后臺日志在至少有一個 slave 連接時,僅僅分配一次。 # repl-backlog-size 1mb # 在 master 不再連接 slave 后,后臺日志將被釋放。下面的配置定義從最后一個 slave 斷開連接后需要釋放的時間(秒)。 # 0 意味著從不釋放后臺日志 # repl-backlog-ttl 3600 # 設置slave優先級,默認為100 # 當主服務器不能正確工作的時候,數字低的首先被提升為主服務器,但是0是禁用選擇 slave-priority 100 # 如果少于 N 個 slave 連接,且延遲時間 <=M 秒,則 master 可配置停止接受寫操作。 # 例如需要至少 3 個 slave 連接,且延遲 <=10 秒的配置: # min-slaves-to-write 3 # min-slaves-max-lag 10 # 設置 0 為禁用 # 默認 min-slaves-to-write 為 0 (禁用), min-slaves-max-lag 為 10 ######################### 安全 ######################### # 設置客戶端連接密碼,因為Redis響應速度可以達到每秒100w次,所以密碼要特別復雜 # requirepass 1413 # 命令重新命名,或者禁用。 # 重命名命令為空字符串可以禁用一些危險命令比如:FLUSHALL刪除所有數據 # 需要注意的是,寫入AOF文件或傳送給slave的命令別名也許會引起一些問題 # rename-command CONFIG "" # 設置客戶端連接密碼,因為Redis響應速度可以達到每秒100w次,所以密碼要特別復雜 requirepass 1413 # 命令重新命名,或者禁用。 # 重命名命令為空字符串可以禁用一些危險命令比如:FLUSHALL刪除所有數據 # 需要注意的是,寫入AOF文件或傳送給slave的命令別名也許會引起一些問題 # rename-command CONFIG "" ######################### 限制 ######################### # 設置最多鏈接客戶端數量,默認為10000。 # 實際可以接受的請求數目為設置值減去32,這32是Redis為內部文件描述符保留的 # maxclients 10000 # 設置最多鏈接客戶端數量,默認為10000。 # 實際可以接受的請求數目為設置值減去32,這32是Redis為內部文件描述符保留的 # maxclients 10000 # 設置最大使用內存數量,在把Redis當作LRU緩存時特別有用。 # 設置的值要比系統能使用的值要小 # 因為當啟用刪除算法時,slave輸出緩存也要占用內存 # maxmemory #達到最大內存限制時,使用何種刪除算法 # volatile-lru 使用LRU算法移除帶有過期標致的key # allkeys-lru -> 使用LRU算法移除任何key # volatile-random -> 隨機移除一個帶有過期標致的key # allkeys-random -> 隨機移除一個key # volatile-ttl -> 移除最近要過期的key # noeviction -> 不刪除key,當有寫請求時,返回錯誤 #默認設置為volatile-lru # maxmemory-policy noeviction # LRU和最小TTL算法沒有精確的實現 # 為了節省內存只在一個樣本范圍內選擇一個最近最少使用的key,可以設置這個樣本大小 # maxmemory-samples 5 ######################### AO模式 ######################### # AOF和RDB持久化可以同時啟用 # Redis啟動時候會讀取AOF文件,AOF文件有更好的持久化保證 appendonly no # AOF的保存名稱,默認為appendonly.aof appendfilename "appendonly.aof" # 設置何時寫入追加日志,又三種模式 # no:表示由操作系統決定何時寫入。性能最好,但可靠性最低 # everysec:表示每秒執行一次寫入。折中方案,推薦 # always:表示每次都寫入磁盤。性能最差,比上面的安全一些 # appendfsync always appendfsync everysec # appendfsync no # 當AOF同步策略設定為alway或everysec # 當后臺存儲進程(后臺存儲或者AOF日志后臺寫入)會產生很多磁盤開銷 # 某些Linux配置會使Redis因為fsync()調用產生阻塞很久 # 現在還沒有修復補丁,甚至使用不同線程進行fsync都會阻塞我們的同步write(2)調用。 # 為了緩解這個問題,使用以下選項在一個BGSAVE或BGREWRITEAOF運行的時候 # 可以阻止fsync()在主程序中被調用, no-appendfsync-on-rewrite no # AOF自動重寫(合并命令,減少日志大小) # 當AOF日志大小增加到一個特定比率,Redis調用BGREWRITEAOF自動重寫日志文件 # 原理:Redis 會記錄上次重寫后AOF文件的文件大小。 # 如果剛啟動,則記錄啟動時AOF大小 # 這個基本大小會用來和當前大小比較。如果當前大小比特定比率大,就會觸發重寫。 # 你也需要指定一個AOF需要被重寫的最小值,這樣會避免達到了比率。 # 但是AOF文件還很小的情況下重寫AOF文件。 # 設置為0禁用自動重寫 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb #redis在啟動時可以加載被截斷的AOF文件,而不需要先執行 redis-check-aof 工具 aof-load-truncated yes ######################### LUA腳本 ######################### # Lua腳本的最大執行時間,單位毫秒 # 超時后會報錯,并且計入日志 # 當一個腳本運行時間超過了最大執行時間 # 只有SCRIPT KILL和 SHUTDOWN NOSAVE兩個命令可以使用。 # SCRIPT KILL用于停止沒有調用寫命令的腳本。 # SHUTDOWN NOSAVE是唯一的一個,在腳本的寫命令正在執行 # 用戶又不想等待腳本的正常結束的情況下,關閉服務器的方法。 # 以下選項設置為0或負數就會取消腳本執行時間限制 lua-time-limit 5000 ####################### redis集群 ######################## # 是否啟用集群 # cluster-enabled yes # 集群配置文件 # 集群配置變更后會自動寫入改文件 # cluster-config-file nodes-6379.conf # 節點互連超時的閥值 # 節點超時時間,超過該時間無法連接主要Master節點后,會停止接受查詢服務 # cluster-node-timeout 15000 # 控制從節點FailOver相關的設置,設為0,從節點會一直嘗試啟動FailOver. # 設為正數,失聯大于一定時間(factor*節點TimeOut),不再進行FailOver # cluster-slave-validity-factor 10 # 最小從節點連接數 # cluster-migration-barrier 1 # 默認為Yes,丟失一定比例Key后(可能Node無法連接或者掛掉),集群停止接受寫操作 # 設置為No,集群丟失Key的情況下仍提供查詢服務 # cluster-require-full-coverage yes ######################### 慢查詢 ######################### # Redis慢查詢日志記錄超過設定時間的查詢,且只記錄執行命令的時間 # 不記錄I/O操作,比如:和客戶端交互,發送回復等。 # 時間單位為微妙,1000000微妙 = 1 秒 # 設置為負數會禁用慢查詢日志,設置為0會記錄所有查詢命令 slowlog-log-slower-than 10000 # 日志長度沒有限制,但是會消耗內存。超過日志長度后,最舊的記錄會被移除 # 使用SLOWLOG RESET命令可以回收內存 slowlog-max-len 128 ######################### 延遲監測 ######################### # 系統只記錄超過設定值的操作,單位是毫秒,0表示禁用該功能 # 可以通過命令“CONFIG SET latency-monitor-threshold ” 直接設置而不需要重啟redis latency-monitor-threshold 0 ######################### 事件通知 ######################### # 當事件發生時, Redis 可以通知 Pub/Sub 客戶端。 # 可以在下表中選擇 Redis 要通知的事件類型。事件類型由單個字符來標識: # K Keyspace 事件,以 _keyspace@_ 的前綴方式發布 # E Keyevent 事件,以 _keysevent@_ 的前綴方式發布 # g 通用事件(不指定類型),像 DEL, EXPIRE, RENAME, … # $ String 命令 # s Set 命令 # h Hash 命令 # z 有序集合命令 # x 過期事件(每次 key 過期時生成) # e 清除事件(當 key 在內存被清除時生成) # A g$lshzxe 的別稱,因此 ”AKE” 意味著所有的事件 # notify-keyspace-events 帶一個由 0 到多個字符組成的字符串參數。空字符串意思是通知被禁用。 # 例子:啟用 list 和通用事件: # notify-keyspace-events Elg # 默認所用的通知被禁用,因為用戶通常不需要改特性,并且該特性會有性能損耗。 # 注意如果你不指定至少 K 或 E 之一,不會發送任何事件。 notify-keyspace-events "" #notify-keyspace-events AKE ######################### 高級設置 ######################### # 當有少量條目的時候,哈希使用高效內存數據結構。最大的條目也不能超過設定的閾值。# “少量”定義如下: hash-max-ziplist-entries 512 hash-max-ziplist-value 64 # 和哈希編碼一樣,少量列表也以特殊方式編碼節省內存。“少量”設定如下: list-max-ziplist-entries 512 list-max-ziplist-value 64 # 集合只在以下情況下使用特殊編碼來節省內存 # -->集合全部由64位帶符號10進制整數構成的字符串組成 # 下面的選項設置這個特殊集合的大小。 set-max-intset-entries 512 # 當有序集合的長度和元素設定為以下數字時,又特殊編碼節省內存 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 # HyperLogLog 稀疏表示字節限制 # 這個限制包含了16個字節的頭部,當一個HyperLogLog使用sparse representation # 超過了這個顯示,它就會轉換到dense representation上 hll-sparse-max-bytes 3000 # 哈希刷新使用每100個CPU毫秒中的1毫秒來幫助刷新主哈希表(頂級鍵值映射表)。 # Redis哈希表使用延遲刷新機制,越多操作,越多刷新。

      Redis

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Java網絡編程之實現資源下載詳解【王道Java】
      下一篇:iWeb會場搶先:直擊HTML5!
      相關文章
      国产亚洲精品美女久久久| 国产99久久亚洲综合精品| 久久精品国产精品亚洲人人 | 亚洲永久网址在线观看| 亚洲毛片在线免费观看| 亚洲综合一区二区| 亚洲小说区图片区| 91亚洲国产成人久久精品网址| 亚洲成AV人综合在线观看| 亚洲精品美女视频| 91亚洲视频在线观看| 亚洲成aⅴ人片在线影院八| 亚洲一区二区三区免费观看| 亚洲国产91在线| 色天使亚洲综合在线观看| 亚洲中文字幕久久精品蜜桃| 亚洲人片在线观看天堂无码| 亚洲AV无码男人的天堂| 豆国产96在线|亚洲| 亚洲国产成人久久精品99| 亚洲日本在线观看视频| 精品亚洲视频在线观看| 亚洲无码在线播放| 久久亚洲精品成人777大小说| 亚洲无删减国产精品一区| 亚洲精品国产情侣av在线| 亚洲国产成a人v在线| 亚洲av日韩av综合| 亚洲欧美精品午睡沙发| 日产国产精品亚洲系列| 国产午夜亚洲精品理论片不卡 | 国产成人毛片亚洲精品| 亚洲综合色自拍一区| 亚洲Av综合色区无码专区桃色 | 精品国产日韩亚洲一区在线| 亚洲国产综合无码一区二区二三区| 久久久久国产成人精品亚洲午夜 | 久久国产亚洲精品麻豆| 亚洲成人免费在线| 亚洲另类古典武侠| 亚洲国产欧美国产综合一区|