Redis在Windows下的使用

來源:互聯網
上載者:User

redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關聯式資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP用戶端,使用很方便。問題是這個項目還很新,可能還不足夠穩定,而且沒有在實際的一些大型系統應用的執行個體。此外,缺乏mc中批量get也是比較大的問題,始終批量擷取跟多次擷取的網路開銷是不一樣的。

效能測試結果:

SET操作每秒鐘 110000 次,GET操作每秒鐘 81000 次,伺服器配置如下:

Linux 2.6Xeon X3320 2.5Ghz.

 

JRedis 是一個高效能的 Java 用戶端,用來串連到 Redis 分布式雜湊鍵-值資料庫。提供同步和非同步串連。

 

 

Windows版的Redis可到此處下載,非官方版

http://code.google.com/p/servicestack/wiki/RedisWindowsDownload

Redis檔案夾有以下幾個檔案
redis-server.exe:服務程式
指定redis的設定檔,如沒有指定,則使用預設設定
D:/redis-2.0.0-rc2>redis-server.exe redis.conf
redis.conf配置選項如下
daemonize 是否以後台進程運行,預設為no
pidfile 如以後台進程運行,則需指定一個pid,預設為/var/run/redis.pid
bind 綁定主機IP,預設值為127.0.0.1(注釋)
port 監聽連接埠,預設為6379
timeout 逾時時間,預設為300(秒)
loglevel 日誌記錄等級,有4個可選值,debug,verbose(預設值),notice,warning
logfile 日誌記錄方式,預設值為stdout
databases 可用資料庫數,預設值為16,預設資料庫為0
save 指出在多長時間內,有多少次更新操作,就將資料同步到資料檔案。這個可以多個條件配合,比如預設設定檔中的設定,就設定了三個條件。
save 900 1 900秒(15分鐘)內至少有1個key被改變
save 300 10 300秒(5分鐘)內至少有300個key被改變
save 60 10000 60秒內至少有10000個key被改變
rdbcompression 儲存至本機資料庫時是否壓縮資料,預設為yes
dbfilename 本機資料庫檔案名稱,預設值為dump.rdb
dir 本機資料庫存放路徑,預設值為 ./
slaveof 當本機為從服務時,設定主服務的IP及連接埠(注釋)
masterauth 當本機為從服務時,設定主服務的串連密碼(注釋)
requirepass 串連密碼(注釋)
maxclients 最大用戶端串連數,預設不限制(注釋)
maxmemory 設定最大記憶體,達到最大記憶體設定後,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理後,任到達最大記憶體設定,將無法再進行寫入操作。(注釋)
appendonly 是否在每次更新操作後進行日誌記錄,如果不開啟,可能會在斷電時導致一段時間內的資料丟失。因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中。預設值為no
appendfilename 更新記錄檔名,預設值為appendonly.aof(注釋)
appendfsync 更新日誌條件,共有3個可選值。no表示等作業系統進行資料緩衝同步到磁碟,always表示每次更新操作後手動調用fsync()將資料寫到磁碟,everysec表示每秒同步一次(預設值)。
vm-enabled 是否使用虛擬記憶體,預設值為no
vm-swap-file 虛擬記憶體檔案路徑,預設值為/tmp/redis.swap,不可多個Redis執行個體共用
vm-max-memory 將所有大於vm-max-memory的資料存入虛擬記憶體,無論vm-max-memory設定多小,所有索引資料都是記憶體儲存的(Redis的索引資料就是keys),也就是說,當vm-max-memory設定為0的時候,其實是所有value都存在於磁碟。預設值為0。
Redis官方文檔對VM的使用提出了一些建議:
當你的key很小而value很大時,使用VM的效果會比較好.因為這樣節約的記憶體比較大.
當你的key不小時,可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個新的value.
最好使用linux ext3 等對疏鬆檔案支援比較好的檔案系統儲存你的swap檔案.
vm-max-threads這個參數,可以設定訪問swap檔案的線程數,設定最好不要超過機器的核心數.如果設定為0,那麼所有對swap檔案的操作都是串列的.可能會造成比較長時間的延遲,但是對資料完整性有很好的保證.
redis-cli.exe:命令列用戶端,測試用
D:/redis-2.0.0-rc2>redis-cli.exe -h 127.0.0.1 -p 6379
設定一個Key並擷取返回的值:
$ ./redis-cli set mykey somevalue
OK
$ ./redis-cli get mykey
Somevalue
如何添加值到list:
$ ./redis-cli lpush mylist firstvalue
OK
$ ./redis-cli lpush mylist secondvalue
OK
$ ./redis-cli lpush mylist thirdvalue
OK
$ ./redis-cli lrange mylist 0 -1
1. thirdvalue
2. secondvalue
3. firstvalue
$ ./redis-cli rpop mylist
firstvalue
$ ./redis-cli lrange mylist 0 -1
1. thirdvalue
2. secondvalue
redis-check-dump.exe:本機資料庫檢查
redis-check-aof.exe:更新日誌檢查
redis-benchmark.exe:效能測試,用以類比同時由N個用戶端發送M個 SETs/GETs 查詢 (類似於 Apache 的 ab 工具).
./redis-benchmark -n 100000 –c 50
====== SET ======
100007 requests completed in 0.88 seconds (譯者註:100004 查詢完成於 1.14 秒 )
50 parallel clients (譯者註:50個並發用戶端)
3 bytes payload (譯者註:3位元組有效載荷)
keep alive: 1 (譯者註:保持1個串連)
58.50% <= 0 milliseconds(譯者註:毫秒)
99.17% <= 1 milliseconds
99.58% <= 2 milliseconds
99.85% <= 3 milliseconds
99.90% <= 6 milliseconds
100.00% <= 9 milliseconds
114293.71 requests per second(譯者註:每秒 114293.71 次查詢)
Windows下測試並發用戶端極限為60
相關文章

http://www.rediscn.com/index.html

http://code.google.com/p/redis/(官網)

轉載請註明來源:http://www.madcn.net/?p=686

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.