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

1.下載windows版本redishtml

官方下載地址:http://redis.io/download,不過官方沒有64位的Windows下的可執行程序,目前有個開源的託管在github上, 地址:https://github.com/ServiceStack/redis-windows git

 

2.解壓github

 

3.文件介紹redis

文件名 簡要
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服務器端數據庫

以下,啓動成功windows

 

6.將redis註冊爲系統服務api

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 # 與第1、第二種狀況類似,有序序列也能夠用一種特別的編碼方式來處理,可節省大量空間。
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
View Code

修改配置後,若是配置文件涉及到中文內容記得將文件存爲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
View Code

 

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

相關文章
相關標籤/搜索