1. 程式人生 > >【redis】redis-windows安裝+配置介紹

【redis】redis-windows安裝+配置介紹

1.下載windows版本redis

2.解壓

3.檔案介紹

檔名 簡要
redis-benchmark.exe 基準測試  redis-benchmark為redis效能測試工具
redis-check-aof.exe aof         AOF是AppendOnly File的縮寫,是Redis系統提供了一種記錄Redis操作的持久化方案
redischeck-dump.exe dump      redis的備份和還原,藉助了第三方的工具,redis-dump
redis-cli.exe 客戶端
redis-server.exe 伺服器
redis.windows.conf 配置檔案

4.redis.windows.conf檔案中設定redis密碼

 5.點選redis-server.exe  啟動redis伺服器端

如下,啟動成功

6.將redis註冊為系統服務

cmd進入dos視窗

首先cd進入到redis目錄下,然後註冊為系統服務

命令列:

redis-server.exe --service-install redis.windows.conf --loglevel verbose

redis-server --service-start

7.解除安裝服務, 可以儲存為 uninstall-service.bat 檔案

redis-server --service-stop

redis-server --service-uninstall

-------------------------------------------------------------------------------------------------------------至此,redis-windows版本安裝完成---------------------------------------------------------------------------------------------------

1.redis.windows.conf各項配置引數介紹

複製程式碼

  1 # 預設情況下,redis不是在後臺模式執行的,如果需要在後臺程序執行,把該項的值更改為yes,預設為no
  2 
  3 daemonize:是否以後臺daemon方式執行
  4 
  5 # 如redis服務以後臺程序執行的時候,Redis預設會把pid寫入/run/redis.pid檔案組,你可以配置到其他檔案路徑。
  6 
  7 # 當執行多個redis服務時,需要指定不同的pid檔案和埠
  8 
  9 pidfile:pid檔案位置
 10 
 11 # 指定redis監聽埠,預設為6379
 12 
 13 # 如果埠設定為0,Redis就不會監聽TCP套接字。
 14 
 15 port:監聽的埠號
 16 
 17 # 指定redis只接收來自於該IP地址的請求,如果不進行設定,預設將處理所有請求,
 18 
 19 # 在生產環境中最好設定該項
 20 
 21 bind 127.0.0.1
 22 
 23 # 設定客戶端連線時的超時時間,單位為秒。當客戶端在這段時間內沒有發出任何指令,那麼關閉該連線
 24 
 25 # 預設值:0代表禁用,永不關閉
 26 
 27 timeout:請求超時時間
 28 
 29 # 指定用來監聽連線的unxi套接字的路徑。這個沒有預設值,所以如果不指定的話,Redis就不會通過unix套接字來監聽。
 30 
 31 # unixsocket /tmp/redis.sock
 32 
 33 # unixsocketperm 755
 34 
 35 # 指定日誌記錄級別
 36 
 37 # Redis總共支援四個級別:debug、verbose、notice、warning,預設為verbose
 38 
 39 # debug 記錄很多資訊,用於開發和測試
 40 
 41 # varbose 很多精簡的有用資訊,不像debug會記錄那麼多
 42 
 43 # notice 普通的verbose,常用於生產環境
 44 
 45 # warning 只有非常重要或者嚴重的資訊會記錄到日誌
 46 
 47 loglevel:log資訊級別
 48 
 49 # 配置log檔名稱和全路徑地址
 50 
 51 # 預設值為stdout,使用“標準輸出”,預設後臺模式會輸出到/dev/null
 52 
 53 logfile:log檔案位置
 54 
 55 # 可用資料庫數,預設值為16,預設資料庫儲存在DB 0號ID庫中,無特殊需求,建議僅設定一個數據庫 databases 1
 56 
 57 # 查詢資料庫使用 SELECT <dbid>
 58 
 59 # dbid介於 0 到 'databases'-1 之間
 60 
 61 databases:開啟資料庫的數量
 62 
 63 save * *:儲存快照的頻率,第一個*表示多長時間,第三個*表示執行多少次寫操作。在一定時間內執行一定數量的寫操作時,自動儲存快照。可設定多個條件。
 64 
 65 rdbcompression:是否使用壓縮
 66 
 67 dbfilename:資料快照檔名(只是檔名,不包括目錄)
 68 
 69 dir:資料快照的儲存目錄(這個是目錄)
 70 
 71 appendonly:是否開啟appendonlylog,開啟的話每次寫操作會記一條log,這會提高資料抗風險能力,但影響效率。
 72 
 73 appendfsync:appendonlylog如何同步到磁碟(三個選項,分別是每次寫都強制呼叫fsync、每秒啟用一次fsync、不呼叫fsync等待系統自己同步)
 74 
 75 ########## REPLICATION 同步 ##########
 76 
 77 #
 78 
 79 # 主從同步。通過 slaveof 配置來實現Redis例項的備份。
 80 
 81 # 注意,這裡是本地從遠端複製資料。也就是說,本地可以有不同的資料庫檔案、繫結不同的IP、監聽不同的埠。
 82 
 83 # 當本機為從服務時,設定主服務的IP及埠,在Redis啟動時,它會自動從主服務進行資料同步
 84 
 85 # slaveof <masterip> <masterport>
 86 
 87 # 如果主服務master設定了密碼(通過下面的 "requirepass" 選項來配置),slave服務連線master的密碼,那麼slave在開始同步之前必須進行身份驗證,否則它的同步請求會被拒絕。
 88 
 89 #當本機為從服務時,設定主服務的連線密碼
 90 
 91 # masterauth <master-password>
 92 
 93 # 當一個slave失去和master的連線,或者同步正在進行中,slave的行為有兩種可能:
 94 
 95 # 1) 如果 slave-serve-stale-data 設定為 "yes" (預設值),slave會繼續響應客戶端請求,可能是正常資料,也可能是還沒獲得值的空資料。
 96 
 97 # 2) 如果 slave-serve-stale-data 設定為 "no",slave會回覆"正在從master同步(SYNC with master in progress)"來處理各種請求,除了 INFO 和 SLAVEOF 命令。
 98 
 99 slave-serve-stale-data yes
100 
101 # slave根據指定的時間間隔向伺服器傳送ping請求。
102 
103 # 時間間隔可以通過 repl_ping_slave_period 來設定。
104 
105 # 預設10秒
106 
107 # repl-ping-slave-period 10
108 
109 # 下面的選項設定了大塊資料I/O、向master請求資料和ping響應的過期時間。
110 
111 # 預設值60秒。
112 
113 # 一個很重要的事情是:確保這個值比 repl-ping-slave-period 大,否則master和slave之間的傳輸過期時間比預想的要短。
114 
115 # repl-timeout 60
116 
117 ########## SECURITY 安全 ##########
118 
119 # 要求客戶端在處理任何命令時都要驗證身份和設定密碼。
120 
121 # 如果你不相信請求者,這個功能很有用。
122 
123 # 為了向後相容的話,這段應該註釋掉。而且大多數人不需要身份驗證(例如:它們執行在自己的伺服器上。)
124 
125 # 警告:外部使用者可以每秒嘗試150k的密碼來試圖破解密碼,這意味著你需要一個高強度的密碼,否則破解太容易了。
126 
127 # 設定連線密碼
128 
129 # requirepass foobared
130 
131 # 命令重新命名,可設定多個
132 
133 # 在共享環境下,可以為危險命令改變名字。比如,你可以為 CONFIG 改個其他不太容易猜到的名字,這樣你自己仍然可以使用,而別人卻沒法知道它。
134 
135 # 例如:
136 
137 # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
138 
139 # rename-command info info_biran
140 
141 # rename-command set set_biran
142 
143 # 甚至也可以通過給命令賦值一個空字串來完全禁用這條命令:
144 
145 # rename-command CONFIG ""
146 
147 ########## LIMITS 限制 ##########
148 
149 # 設定最大同時連線客戶端數量。
150 
151 # 預設沒有限制,這個關係到Redis程序能夠開啟的檔案描述符數量。
152 
153 # 特殊值"0"表示沒有限制。
154 
155 # 一旦達到這個限制,Redis會關閉所有新連線併發送錯誤"達到最大使用者數上限(max number of clients reached)"
156 
157 # maxclients 128
158 
159 # 不要用比設定的上限更多的記憶體。一旦記憶體使用達到上限,Redis會根據選定的回收策略(參見:maxmemmory-policy:記憶體策略設定)刪除key。
160 
161 # 如果因為刪除策略問題Redis無法刪除key,或者策略設定為 "noeviction",Redis會回覆需要更多記憶體的錯誤資訊給命令。
162 
163 # 例如,SET,LPUSH等等。但是會繼續合理響應只讀命令,比如:GET。
164 
165 # 在使用Redis作為LRU快取,或者為例項設定了硬性記憶體限制的時候(使用 "noeviction" 策略)的時候,這個選項還是滿有用的。
166 
167 # 警告:當一堆slave連上達到記憶體上限的例項的時候,響應slave需要的輸出快取所需記憶體不計算在使用記憶體當中。
168 
169 # 這樣當請求一個刪除掉的key的時候就不會觸發網路問題/重新同步的事件,然後slave就會收到一堆刪除指令,直到資料庫空了為止。
170 
171 # 簡而言之,如果你有slave連上一個master的話,那建議你把master記憶體限制設小點兒,確保有足夠的系統記憶體用作輸出快取。
172 
173 # (如果策略設定為"noeviction"的話就不無所謂了)
174 
175 # 設定最大記憶體,達到最大記憶體設定後,Redis會先嚐試清除已到期或即將到期的Key,當此方法處理後,任到達最大記憶體設定,將無法再進行寫入操作。
176 
177 # maxmemory 256000000分配256M記憶體
178 
179 # maxmemory <bytes>
180 
181 # 記憶體策略:如果達到記憶體限制了,Redis如何刪除key。你可以在下面五個策略裡面選:
182 
183 #
184 
185 # volatile-lru -> 根據LRU演算法生成的過期時間來刪除。
186 
187 # allkeys-lru -> 根據LRU演算法刪除任何key。
188 
189 # volatile-random -> 根據過期設定來隨機刪除key。
190 
191 # allkeys->random -> 無差別隨機刪。
192 
193 # volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
194 
195 # noeviction -> 誰也不刪,直接在寫操作時返回錯誤。
196 
197 #
198 
199 # 注意:對所有策略來說,如果Redis找不到合適的可以刪除的key都會在寫操作時返回一個錯誤。
200 
201 #
202 
203 # 這裡涉及的命令:set setnx setex append
204 
205 # incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
206 
207 # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
208 
209 # zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
210 
211 # getset mset msetnx exec sort
212 
213 #
214 
215 # 預設值如下:
216 
217 # maxmemory-policy volatile-lru
218 
219 # LRU和最小TTL演算法的實現都不是很精確,但是很接近(為了省記憶體),所以你可以用樣例做測試。
220 
221 # 例如:預設Redis會檢查三個key然後取最舊的那個,你可以通過下面的配置項來設定樣本的個數。
222 
223 # maxmemory-samples 3
224 
225 ########## APPEND ONLY MODE 純累加模式 ##########
226 
227 # 預設情況下,Redis是非同步的把資料匯出到磁碟上。因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中,這種情況下,當Redis宕機的時候,最新的資料就丟了。
228 
229 # 如果不希望丟掉任何一條資料的話就該用純累加模式:一旦開啟這個模式,Redis會把每次寫入的資料在接收後都寫入 appendonly.aof 檔案。
230 
231 # 每次啟動時Redis都會把這個檔案的資料讀入記憶體裡。
232 
233 #
234 
235 # 注意,非同步匯出的資料庫檔案和純累加檔案可以並存(此時需要把上面所有"save"設定都註釋掉,關掉匯出機制)。
236 
237 # 如果純累加模式開啟了,那麼Redis會在啟動時載入日誌檔案而忽略匯出的 dump.rdb 檔案。
238 
239 #
240 
241 # 重要:檢視 BGREWRITEAOF 來了解當累加日誌檔案太大了之後,怎麼在後臺重新處理這個日誌檔案。
242 
243 # 設定:yes為純累加模式
244 
245 appendonly no
246 
247 # 設定純累加檔名字及儲存路徑,預設:"appendonly.aof"
248 
249 # appendfilename appendonly.aof
250 
251 # fsync() 請求作業系統馬上把資料寫到磁碟上,不要再等了。
252 
253 # 有些作業系統會真的把資料馬上刷到磁碟上;有些則要磨蹭一下,但是會盡快去做。
254 
255 # Redis支援三種不同的模式:
256 
257 #
258 
259 # no:不要立刻刷,只有在作業系統需要刷的時候再刷。比較快。
260 
261 # always:每次寫操作都立刻寫入到aof檔案。慢,但是最安全。
262 
263 # everysec:每秒寫一次。折衷方案。
264 
265 # 預設的 "everysec" 通常來說能在速度和資料安全性之間取得比較好的平衡。
266 
267 # 如果你真的理解了這個意味著什麼,那麼設定"no"可以獲得更好的效能表現(如果丟資料的話,則只能拿到一個不是很新的快照);
268 
269 # 或者相反的,你選擇 "always" 來犧牲速度確保資料安全、完整。
270 
271 #
272 
273 # 如果不確定這些模式的使用,建議使用 "everysec"
274 
275 #
276 
277 # appendfsync always
278 
279 appendfsync everysec
280 
281 # appendfsync no
282 
283 # 如果AOF的同步策略設定成 "always" 或者 "everysec",那麼後臺的儲存程序(後臺儲存或寫入AOF日誌)會產生很多磁碟I/O開銷。
284 
285 # 某些Linux的配置下會使Redis因為 fsync() 而阻塞很久。
286 
287 # 注意,目前對這個情況還沒有完美修正,甚至不同執行緒的 fsync() 會阻塞我們的 write(2) 請求。
288 
289 #
290 
291 # 為了緩解這個問題,可以用下面這個選項。它可以在 BGSAVE 或 BGREWRITEAOF 處理時阻止 fsync()。
292 
293 #
294 
295 # 這就意味著如果有子程序在進行儲存操作,那麼Redis就處於"不可同步"的狀態。
296 
297 # 這實際上是說,在最差的情況下可能會丟掉30秒鐘的日誌資料。(預設Linux設定)
298 
299 #
300 
301 # 如果你有延遲的問題那就把這個設為 "yes",否則就保持 "no",這是儲存持久資料的最安全的方式。
302 
303 no-appendfsync-on-rewrite no
304 
305 # 自動重寫AOF檔案
306 
307 # 如果AOF日誌檔案大到指定百分比,Redis能夠通過 BGREWRITEAOF 自動重寫AOF日誌檔案。
308 
309 #
310 
311 # 工作原理:Redis記住上次重寫時AOF日誌的大小(或者重啟後沒有寫操作的話,那就直接用此時的AOF檔案),
312 
313 # 基準尺寸和當前尺寸做比較。如果當前尺寸超過指定比例,就會觸發重寫操作。
314 
315 #
316 
317 # 你還需要指定被重寫日誌的最小尺寸,這樣避免了達到約定百分比但尺寸仍然很小的情況還要重寫。
318 
319 #
320 
321 # 指定百分比為0會禁用AOF自動重寫特性。
322 
323 auto-aof-rewrite-percentage 100
324 
325 auto-aof-rewrite-min-size 64mb
326 
327 ########## SLOW LOG 慢查詢日誌 ##########
328 
329 # Redis慢查詢日誌可以記錄超過指定時間的查詢。執行時間不包括各種I/O時間。
330 
331 # 例如:連線客戶端,傳送響應資料等。只計算命令執行的實際時間(這是唯一一種命令執行執行緒阻塞而無法同時為其他請求服務的場景)
332 
333 #
334 
335 # 你可以為慢查詢日誌配置兩個引數:一個是超標時間,單位為微妙,記錄超過個時間的命令。
336 
337 # 另一個是慢查詢日誌長度。當一個新的命令被寫進日誌的時候,最老的那個記錄會被刪掉。
338 
339 #
340 
341 # 下面的時間單位是微秒,所以1000000就是1秒。注意,負數時間會禁用慢查詢日誌,而0則會強制記錄所有命令。
342 
343 slowlog-log-slower-than 10000
344 
345 # 這個長度沒有限制。只要有足夠的記憶體就行。你可以通過 SLOWLOG RESET 來釋放記憶體。
346 
347 slowlog-max-len 128
348 
349 ########## VIRTUAL MEMORY 虛擬記憶體 ##########
350 
351 ### 警告!虛擬記憶體在Redis 2.4是反對的,因效能問題,2.4版本 VM機制徹底廢棄,不建議使用此配置!!!!!!!!!!!
352 
353 # 虛擬記憶體可以使Redis在記憶體不夠的情況下仍然可以將所有資料序列儲存在記憶體裡。
354 
355 # 為了做到這一點,高頻key會調到記憶體裡,而低頻key會轉到交換檔案裡,就像作業系統使用記憶體頁一樣。
356 
357 # 要使用虛擬記憶體,只要把 "vm-enabled" 設定為 "yes",並根據需要設定下面三個虛擬記憶體引數就可以了。
358 
359 vm-enabled no
360 
361 # 這是交換檔案的路徑。估計你猜到了,交換檔案不能在多個Redis例項之間共享,所以確保每個Redis例項使用一個獨立交換檔案。
362 
363 # 最好的儲存交換檔案(被隨機訪問)的介質是固態硬碟(SSD)。
364 
365 # *** 警告 *** 如果你使用共享主機,那麼預設的交換檔案放到 /tmp 下是不安全的。
366 
367 # 建立一個Redis使用者可寫的目錄,並配置Redis在這裡建立交換檔案。
368 
369 vm-swap-file /tmp/redis.swap
370 
371 # "vm-max-memory" 配置虛擬記憶體可用的最大記憶體容量。
372 
373 # 如果交換檔案還有空間的話,所有超標部分都會放到交換檔案裡。
374 
375 # "vm-max-memory" 設定為0表示系統會用掉所有可用記憶體,建議設定為剩餘記憶體的60%-80%。
376 
377 # 將所有大於vm-max-memory的資料存入虛擬記憶體,無論vm-max-memory設定多小,所有索引資料都是記憶體儲存的(Redis的索引資料就是keys),也就是說,當vm-max-memory設定為0的時候,其實是所有value都存在於磁碟。預設值為0。
378 
379 vm-max-memory 0
380 
381 # Redis交換檔案是分成多個數據頁的。
382 
383 # 一個可儲存物件可以被儲存在多個連續頁裡,但是一個數據頁無法被多個物件共享。
384 
385 # 所以,如果你的資料頁太大,那麼小物件就會浪費掉很多空間。
386 
387 # 如果資料頁太小,那用於儲存的交換空間就會更少(假定你設定相同的資料頁數量)
388 
389 # 如果你使用很多小物件,建議分頁尺寸為64或32個位元組。
390 
391 # 如果你使用很多大物件,那就用大一些的尺寸。
392 
393 # 如果不確定,那就用預設值 :)
394 
395 vm-page-size 32
396 
397 # 交換檔案裡資料頁總數。
398 
399 # 根據記憶體中分頁表(已用/未用的資料頁分佈情況),磁碟上每8個數據頁會消耗記憶體裡1個位元組。
400 
401 # 交換區容量 = vm-page-size * vm-pages
402 
403 # 根據預設的32位元組的資料頁尺寸和134217728的資料頁數來算,Redis的資料頁檔案會佔4GB,而記憶體裡的分頁表會消耗16MB記憶體。
404 
405 # 為你的應驗程式設定最小且夠用的數字比較好,下面這個預設值在大多數情況下都是偏大的。
406 
407 vm-pages 134217728
408 
409 # 同時可執行的虛擬記憶體I/O執行緒數,即訪問swap檔案的執行緒數。
410 
411 # 這些執行緒可以完成從交換檔案進行資料讀寫的操作,也可以處理資料在記憶體與磁碟間的互動和編碼/解碼處理。
412 
413 # 多一些執行緒可以一定程度上提高處理效率,雖然I/O操作本身依賴於物理裝置的限制,不會因為更多的執行緒而提高單次讀寫操作的效率。
414 
415 # 特殊值0會關閉執行緒級I/O,並會開啟阻塞虛擬記憶體機制。
416 
417 # 設定最好不要超過機器的核數,如果設定為0,那麼所有對swap檔案的操作都是序列的.可能會造成比較長時間的延遲,但是對資料完整性有很好的保證.
418 
419 vm-max-threads 4
420 
421 ########## ADVANCED CONFIG 高階配置 ##########
422 
423 # 當有大量資料時,適合用雜湊編碼(這會需要更多的記憶體),元素數量上限不能超過給定限制。
424 
425 # Redis Hash是value內部為一個HashMap,如果該Map的成員數比較少,則會採用類似一維線性的緊湊格式來儲存該Map, 即省去了大量指標的記憶體開銷,如下2個條件任意一個條件超過設定值都會轉換成真正的HashMap,
426 
427 # 當value這個Map內部不超過多少個成員時會採用線性緊湊格式儲存,預設是64,即value內部有64個以下的成員就是使用線性緊湊儲存,超過該值自動轉成真正的HashMap。
428 
429 hash-max-zipmap-entries 512
430 
431 # 當 value這個Map內部的每個成員值長度不超過多少位元組就會採用線性緊湊儲存來節省空間。
432 
433 hash-max-zipmap-value 64
434 
435 # 與hash-max-zipmap-entries雜湊相類似,資料元素較少的情況下,可以用另一種方式來編碼從而節省大量空間。
436 
437 # list資料型別多少節點以下會採用去指標的緊湊儲存格式
438 
439 list-max-ziplist-entries 512
440 
441 # list資料型別節點值大小小於多少位元組會採用緊湊儲存格式
442 
443 list-max-ziplist-value 64
444 
445 # 還有這樣一種特殊編碼的情況:資料全是64位無符號整型數字構成的字串。
446 
447 # 下面這個配置項就是用來限制這種情況下使用這種編碼的最大上限的。
448 
449 set-max-intset-entries 512
450 
451 # 與第一、第二種情況相似,有序序列也可以用一種特別的編碼方式來處理,可節省大量空間。
452 
453 # 這種編碼只適合長度和元素都符合下面限制的有序序列:
454 
455 zset-max-ziplist-entries 128
456 
457 zset-max-ziplist-value 64
458 
459 # 雜湊重新整理,每100個CPU毫秒會拿出1個毫秒來重新整理Redis的主雜湊表(頂級鍵值對映表)。
460 
461 # redis所用的雜湊表實現(見dict.c)採用延遲雜湊重新整理機制:你對一個雜湊表操作越多,雜湊重新整理操作就越頻繁;
462 
463 # 反之,如果伺服器非常不活躍那麼也就是用點記憶體儲存雜湊表而已。
464 
465 # 預設是每秒鐘進行10次雜湊表重新整理,用來重新整理字典,然後儘快釋放記憶體。
466 
467 # 建議:
468 
469 # 如果你對延遲比較在意的話就用 "activerehashing no",每個請求延遲2毫秒不太好嘛。
470 
471 # 如果你不太在意延遲而希望儘快釋放記憶體的話就設定 "activerehashing yes"。
472 
473 activerehashing yes
474 
475 ########## INCLUDES 包含 ##########
476 
477 # 包含一個或多個其他配置檔案。
478 
479 # 這在你有標準配置模板但是每個redis伺服器又需要個性設定的時候很有用。
480 
481 # 包含檔案特性允許你引人其他配置檔案,所以好好利用吧。
482 
483 # include /path/to/local.conf
484 
485 # include /path/to/other.conf

複製程式碼

修改配置後,如果配置檔案涉及到中文內容記得將檔案存為UTF-8編碼。

2.redis-cli.exe 客戶端使用

點選redis-cli.exe

測試伺服器啟動連線情況

127.0.0.1:6379> ping

PONG

檢視伺服器級別資訊(測試伺服器)

複製程式碼

127.0.0.1:6379> info
# Server
redis_version:3.0.503
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:d14575c6134f877
redis_mode:standalone
os:Windows
arch_bits:64
multiplexing_api:WinSock_IOCP
process_id:6500
run_id:f2663d82395dfda794e1a2369bca791e4297f8d3
tcp_port:6379
uptime_in_seconds:13748
uptime_in_days:0
hz:10
lru_clock:7276575
config_file:

# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:692888
used_memory_human:676.65K
used_memory_rss:655240
used_memory_peak:692888
used_memory_peak_human:676.65K
used_memory_lua:36864
mem_fragmentation_ratio:0.95
mem_allocator:jemalloc-3.6.0

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1500435051
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok

# Stats
total_connections_received:1
total_commands_processed:1
instantaneous_ops_per_sec:0
total_net_input_bytes:28
total_net_output_bytes:7
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
migrate_cached_sockets:0

# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:0.02
used_cpu_user:0.02
used_cpu_sys_children:0.00
used_cpu_user_children:0.00

# Cluster
cluster_enabled:0

# Keyspace

複製程式碼

3.redis-benchmark 效能測試工具

預設雙擊開啟是按照預設的測試引數進行測試,而且它自己測試跑完之後,就會自動關閉DOS視窗了。

輸入如下命令後會看到如下資訊,表明同時併發10個連線,總共100次操作。通俗易懂的說就是10個使用者同時操作,總共每人操作10次的意思

複製程式碼

100 requests completed in 0.01 seconds (100個請求完成於0.01秒)

10 parallel clients (10個客戶端併發)

3 bytes payload (每次寫入3個位元組)

keep alive: 1 (儲存一個連結數)

100.00% <= 1 milliseconds (100%的操作小於1秒完成)

16666.67 requests per second (每秒完成16666.67次查詢)

複製程式碼

命令引數說明

複製程式碼

redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

-h <hostname> 主機名 (預設 127.0.0.1)

-p <port> 主機埠 (預設 6379)

-s <socket> 主機套接字 (覆蓋主機和埠)

-c <clients> 併發連線的數量 (預設 50)

-n <requests> 請求總數 (預設 10000)

-d <size> SET/GET資料的位元組大小(預設 2)

-k <boolean> 1=keep alive 0=reconnect (預設 1)

-r <keyspacelen> SET/GET/INCR使用隨機產生的key, SADD使用隨機值使用這個選項 get/set keys時會用mykey_rand:000000012456代替常量key, <keyspacelen>引數決定了隨機數產生的最大值,比如,設定引數為10,那麼產生的隨機數範圍是rand:000000000000 -rand:000000000009

-P <numreq> Pipeline請求的數量. 預設 1 (不使用pipeline).

-q 展示query/sec值

--csv 以CSV格式輸出

-l 本地迴圈. 一直執行測試

-t <tests> 在執行逗號分割列表的測試. 測試的名字與產生輸出的名字一樣。

-I 空閒模式. 開啟 N 個空閒連線,然後等待.

複製程式碼

執行示例

複製程式碼

對指定伺服器、埠進行20個同時併發操作,總共操作100000次

redis-benchmark -h 192.168.1.136 -p 6379 -n 100000 -c 20

測試set寫入操作1000000次,隨機數範圍在100000000

redis-benchmark -t set -n 1000000 -r 100000000

測試ping、set、get操作100000次,結果輸出用csv格式

redis-benchmark -t ping,set,get -n 100000 –-csv

redis-benchmark -r 10000 -n 10000 lpush mylist ele:rand:000000000000

複製程式碼

4.redis-check-aof 基本用法

檢查本地日誌資訊,加--fix引數為修復log檔案

redis-check-aof.exe log.aof

5.redis-check-dump 檢查資料庫檔案

redis-check-dump.exe dump.rdb 會輸出該檔案大小、使用情況。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

參考:http://www.cnblogs.com/hoojo/p/4466024.html