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