Redis DeskTop Manage是redis的一款可視化管理工具,那麼如何鏈接到虛擬機(centos7爲例)的redis服務器呢?node
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
linux
tar xzf redis-6.0.8.tar.gz
c++
cd redis-6.0.8
redis
gcc -v
,由於是用c++寫的,因此make前須要安裝gcc或者升級gccyum install gcc-c++
算法
make
安裝後進入/usr/local/bin
目錄查看,這裏的config文件夾是我後面手動建立的mkdir config
,用來放置個人redis配置文件
centos
redis.config
文件複製到咱們剛建立的安裝後的目錄下的config文件夾內
cd /usr/local/bin/ cp /home/parallels/redis-6.0.8/redis.conf congig
## 在redis中,合法的"尺寸單位",無大小寫區分. # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes ##將redis是否之後臺進程的方式運行,默認爲"no" **daemonize** no ##若是"daemonize yes",那麼將會把進程id信息寫入文件中.請注意:啓動redis進程的用戶須要具備寫入此目錄的權限. ##pidfile ~/redis.pid ##指令操做:./redis.server --daemonize yes --pidfile ~/redis.pid ## **pidfile** /var/run/redis.pid ##指定server須要偵聽的客戶端鏈接端口,client與server在此端口進行TCP通訊. **port** 6379 ##若是你的物理服務器有多個網絡接口,請你爲將server socket綁定在指定IP上. # **bind** 127.0.0.1 # 指定socket鏈接空閒時間(秒).若是connection空閒超時,將會關閉鏈接(TCP socket選項) ##若是爲0,表示永不超時. **timeout** 0 ##指定TCP鏈接是否爲長鏈接,"偵探"信號有server端維護,長鏈接將會額外的增長server端的開支(TCP socket選項) ##默認爲0.表示禁用,非0值表示開啓"長鏈接";"偵探"信號的發送間隔將有linux系統決定 ##在屢次"偵探"後,若是對等端(客戶端socket)仍不回覆,將會關閉鏈接,不然鏈接將會被保持開啓. ##client端socket也能夠經過配置keepalive選項,開啓"長鏈接".(單位:秒) **tcp-keepaliv**e 0 ##server日誌級別,合法值:debug,verbose,notice,warning 默認爲notice ##debug適合開發環境,客戶端操做信息都會輸出日誌 ##verbose輸出一些相對有用的信息,目前效果不明 ##notice適合生產環境 ##warning異常信息 **loglevel** notice ##指定redis日誌文件目錄,默認爲stdout ##logfile ~/redislog.log **logfile** stdout ##設定redis所容許的最大"db簇"的個數,默認爲16個簇. ##客戶端能夠經過"select"指令指定須要使用的"db簇"索引號,默認爲0. ##redis的頂層數據結構中,全部K-V都潛在的包括了"db簇"索引號,任何一個key都將隸屬於一個"db". ##任何對數據的檢索,只會覆蓋指定的"db";例如數據被插入到"db 10"中,那麼在"db 1"中去get,將會返回null. ##對數據歸類到不一樣的db簇中,能夠幫助咱們實現一些特定的需求,好比根據不一樣客戶端鏈接,來指定不一樣的db索引號. **databases** 16 ##snapshot配置,save <seconds> <changes>,用來描述"在多少秒期間至少多少個變動操做"觸發snapshot ##snapshot最終將生成新的dump.rdb文件 ##save ""用來禁用snapshot功能 ##以下表示12小時內至少一個key變動,觸發snapshot **save** 43200 1 ##若是snapshot過程當中出現錯誤,即數據持久化失敗,是否終止全部的客戶端write請求. ##這個選項很讓人爲難,"yes"表示終止,一旦snapshot故障,那麼此server爲只讀服務; ##若是爲"no",那麼這次snapshot將失敗,但下一次snapshot不會受到影響,不過若是出現故障,數據只能恢復到"最近一個成功點". **stop-writes-on-bgsave-error** yes ##是否啓用rdb文件壓縮手段,默認爲yes. ##壓縮可能須要額外的cpu開支,不過這可以有效的減少rdb文件的大小,有利於存儲/備份/傳輸/數據恢復. **rdbcompression** yes ##是否對rdb文件使用CRC64校驗和,默認爲"yes",那麼每一個rdb文件內容的末尾都會追加CRC校驗和. ##對於其餘第三方校驗工具,能夠很方便的檢測文件的完整性 **rdbchecksum** yes ##指定rdb文件的名稱 **dbfilename** dump.rdb ##指定rdb/AOF文件的目錄位置 **dir** ./ # 將當前server作爲slave,併爲其指定master信息. # **slaveof** <masterip> <masterport> ##當前server的受權密碼 ##任何客戶端或者slave與此server交互前,須要提交密碼,其餘server的masterauth配置和此參數值保持一致 ##密碼應該足夠複雜(64字節) # **requirepass** <foobared> ## 以認證的方式鏈接到master.若是master中使用了"密碼保護",slave必須交付正確的受權密碼,才能鏈接成功 ## "requirepas"配置項指定了當前server的密碼. ## 此配置項中<master-password>值須要和master機器的"requirepas"保持一致。此參數配置在slave端。 # **masterauth** <master-password> ##若是當前server是slave,那麼當slave與master失去通信時,是否繼續爲客戶端提供服務,"yes"表示繼續,"no"表示終止. ##在"yes"狀況下,slave繼續向客戶端提供只讀服務,有可能此時的數據已通過期. ##在"no"狀況下,任何向此server發送的數據請求服務(包括客戶端和此server的slave)都將被告知"error" **slave-serve-stale-data** yes ##slave是否爲"只讀",強烈建議爲"yes" **slave-read-only** yes ##slave向指定的master發送ping消息的時間間隔(秒),默認爲10 # **repl-ping-slave-period** 10 ##slave與master通信中,最大空閒時間,默認60秒.超時將致使鏈接關閉. # **repl-timeout** 60 ##slave與master的鏈接,是否禁用TCP nodelay選項. ##"yes"表示禁用,那麼socket通信中數據將會以packet方式發送(packet大小受到socket buffer限制), ## 能夠提升socket通信的效率(tcp交互次數),可是小數據將會被buffer,不會被當即發送,對於接受者可能存在延遲. ##"no"表示開啓tcp nodelay選項,任何數據都會被當即發送,及時性較好,可是效率較低 ##建議爲"no" **repl-disable-tcp-nodelay** no ##適用Sentinel模塊(unstable,M-S集羣管理和監控),須要額外的配置文件支持 ##slave的權重值,默認100.當master失效後,Sentinel將會從slave列表中找到權重值最低(>0)的slave,並提高爲master ##若是權重值爲0,表示此slave爲"觀察者",不參與master選舉 **slave-priority** 100 ##重命名指令,對於一些與"server"控制有關的指令,可能不但願遠程客戶端(非管理員用戶)連接隨意使用, ##那麼就能夠把這些指令重命名爲"難以閱讀"的其餘字符串. ##例如"slaveof" "CONFIG" "BGREWRITEAOF" "BGREWRITE" "FLUSHALL"等指令須要被限制訪問 ##配置項格式: rename-command <command> <newCommand> # **rename-command** CONFIG 3ed984507a5dcd722aeade310065ce5d (方式:MD5('CONFIG^!')) ##所容許的客戶端鏈接數,默認爲10000. ##此值不可能被設置成過大,由於每一個socket鏈接都會以"文件描述符"的方式被系統打開,它受到系統"文件打開個數"的限制 ##若是超過此值,server將會拒絕鏈接. # **maxclients** 10000 ##redis-cache所能使用的最大內存(bytes),默認爲0,表示"無限制",最終由OS物理內存大小決定(若是物理內存不足,有可能會使用swap) ##若是此值設置太小(好比32字節),將直接致使server沒法使用. ##此值儘可能不要超過機器的物理內存尺寸,從性能和實施的角度考慮,能夠爲物理內存3/4. ##此配置須要和"maxmemory-policy"配合使用,當redis中內存數據達到maxmemory時,觸發"清除策略". ##若是使用"清除策略"後,仍沒法獲得足夠的內存來存儲新的數據,那麼write操做的客戶端將會收到"error OOM.."信息,此時server只讀. ##在"內存不足"時,任何write操做(好比set,lpush等)都會觸發"清除策略"的執行. ##在實際環境中,建議redis的全部物理機器的硬件配置保持一致(內存一致),同時確保master/slave中"maxmemory""policy"配置一致 # **maxmemory** <bytes> ##"內存不足"時,數據清除策略,默認爲"volatile-lru" ## _volatile-lru_ ->對"過時集合"中的數據採起LRU(近期最少使用)算法.若是對key使用"expire"指令指定了過時時間,那麼此key將會被添加到"過時集合"中. ##每一個Redis對象,都保留一個「最後訪問時間」的屬性,能夠用來判斷此對象空閒的時間,那麼LRU算法就能夠根據此屬性來進行判斷。 ## 將已通過期/LRU的數據優先移除.若是"過時集合"中所有移除仍不能知足內存需求,將OOM. ## _allkeys-lru_ ->對全部的數據,採用LRU算法 ## _volatile-random_ ->對"過時集合"中的數據採起"隨即選取"算法,並移除選中的K-V,直到"內存足夠"爲止. ## 若是若是"過時集合"中所有移除所有移除仍不能知足,將OOM ## _allkeys-random_ ->對全部的數據,採起"隨即選取"算法,並移除選中的K-V,直到"內存足夠"爲止. ## _volatile-ttl_ ->對"過時集合"中的數據採起TTL算法(最小存活時間),移除即將過時的數據. ## _noeviction_ ->不作任何干擾操做,直接返回OOM異常. ### ##若是數據的過時不會對"應用系統"帶來異常,且系統中write操做比較密集,建議採起"_**allkeys-lru**_" # **maxmemory-policy** volatile-lru ##是否開啓aof功能,"yes"表示開啓,在開啓狀況下,aof文件同步功能才生效,默認爲"no" ##對master機器,建議使用AOF,對於slave,建議關閉(採用snapshot), **appendonly** no ##aof中文件同步機制 ## _always_ ->任何一個aof記錄都當即進行文件同步(磁盤寫入),安全性最高;若是write請求比較密集,將會形成較高的磁盤IO開支和響應延遲 ## _everysec_ ->每秒同步一次,性能和安全性都較高的策略,也是默認值 ## _no_ ->不直接同步,讓文件同步交給OS控制,OS將會根據文件流通道中buffer狀況/空閒狀況進行擇機寫入磁盤.安全性和效率與OS設定有關. **appendfsync** everysec ##在aof rewrite期間,是否對aof新記錄的append暫緩使用文件同步策略,主要考慮磁盤IO開支和請求阻塞時間. ##默認爲no,表示"不暫緩",新的aof記錄仍然會被當即同步 ## **no-appendfsync-on-rewrite** no ##aof rewrite觸發時機,最小文件尺寸 **auto-aof-rewrite-min-size** 64mb ##aof每次rewrite以後,都會記住當前aof文件的大小,當文件增加到必定比例後,繼續進行aof rewrite **auto-aof-rewrite-percentage** 100 ##aof rewrite過程當中,是否採起增量"文件同步"策略,默認爲"yes",並且必須爲yes. ##rewrite過程當中,每32M數據進行一次文件同步,這樣能夠減小"aof大文件"寫入對磁盤的操做次數. **aof-rewrite-incremental-fsync** yes ##lua腳本運行的最大時間 **lua-time-limit** 5000 ##"慢操做日誌"記錄,單位:微秒(百萬分之一秒,1000 * 1000),若是操做時間超過此值,將會把command信息"記錄"起來.(內存,非文件) ##其中"操做時間"不包括網絡IO開支,只包括請求達到server後進行"內存實施"的時間."0"表示記錄所有操做. **slowlog-log-slower-than** 10000 ##"慢操做日誌"保留的最大條數,"記錄"將會被隊列化,若是超過了此長度,舊記錄將會被移除. ##能夠經過"SLOWLOG <subcommand> args"查看慢記錄的信息(SLOWLOG get 10,SLOWLOG reset) ##經過"SLOWLOG get num"指令能夠查看最近num條慢速記錄,其中包括"記錄"操做的時間/指令/K-V等信息 **slowlog-max-len** 128 ##經過"TYPE key"指令查看key的數據類型 ##經過"OBJECT encoding key"查看key的編碼類型 ##hash類型的數據結構在編碼上可使用ziplist和hashtable ##ziplist的特色就是文件存儲(以及內存存儲)所需的空間較小,在內容較小時,性能和hashtable幾乎同樣.所以redis對hash類型默認採起ziplist. ##若是hash中條目的條目個數或者value長度達到閥值,將會被重構爲hashtable. ##ziplist中容許存儲的最大條目個數,建議爲128 **hash-max-ziplist-entries** 512 ##ziplist中容許條目value值最大字節數,建議爲1024 **hash-max-ziplist-value** 64 ##對於list類型,將會採起ziplist,linkedlist兩種編碼類型. ##同hash. **list-max-ziplist-entries** 512 **list-max-ziplist-value** 64 ##zset爲有序集合,有2中編碼類型:ziplist,skiplist ##由於"排序"將會消耗額外的性能,當zset中數據較多時,將會被重構爲skiplist. ##同hash. **zset-max-ziplist-entries** 128 **zset-max-ziplist-value** 64 ##intset中容許保存的最大條目個數,若是達到閥值,intset將會被重構爲hashtable **set-max-intset-entries** 512 ##是否開啓頂層數據結構的rehash功能,若是內存容許,請開啓. ##rehash可以很大程度上提升K-V存取的效率. **activerehashing** yes ##客戶端buffer控制 ##在客戶端與server進行的交互中,每一個鏈接都會與一個buffer關聯,此buffer用來隊列化亟待被client接受的響應信息. ##若是client不能及時的消費響應信息,那麼buffer將會被不斷積壓而給server帶來內存壓力.若是buffer中積壓的數據達到閥值,將會 ##致使鏈接被關閉,buffer被移除." ##buffer控制類型包括: ## _normal_ -> 普通鏈接 ## _slave_ ->與slave之間的鏈接 ## _pubsub_ ->pub/sub類型鏈接,此類型的鏈接,每每會產生此種問題;由於pub端會密集的發佈消息,可是sub端可能消費不足. ##指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>",其中hard表示buffer最大值,一旦達到閥值將當即關閉鏈接; ##soft表示"容忍值",它和seconds配合,若是buffer值超過soft且持續時間達到了seconds,也將當即關閉鏈接,若是超過了soft可是在seconds以後 ##buffer數據小於了soft,鏈接將會被保留. # 其中hard和soft都設置爲0,則表示禁用buffer控制.一般hard值大於soft. **client-output-buffer-limit** normal 0 0 0 **client-output-buffer-limit** slave 256mb 64mb 60 **client-output-buffer-limit** pubsub 32mb 8mb 60 ##Redis server執行後臺任務的頻率,默認爲10,此值越大表示redis對"間歇性task"的執行次數越頻繁(次數/秒) ##"間歇性task"包括"過時集合"檢測、關閉"空閒超時"的鏈接等,此值必須大於0且小於500.(參見redis.h源碼) ##此值太小就意味着更多的cpu週期消耗,後臺task被輪詢的次數更頻繁 ##此值過大意味着"內存敏感"性較差. ##建議保持默認值 **hz** 10 ##include指令用來載入額外的配置文件模板,也能夠在redis server啓動時,手動指定須要include的配置文件. # **include** /path/to/local.conf # include /path/to/other.conf
cd /usr/local/bin
安全
我這裏在配置文件中配置過了密碼,因此須要auth 密碼認證
1)修改protected-mode yes 改成:protected-mode no
2)註釋掉#bin 127.0.0.1
3)將 daemonize no 改爲 yes
4)設置密碼 requirepass 123456bash
能夠查看個人上一篇博客服務器
ifconfig