NoSQL簡介
介紹redis前,我想還是先認識下NoSQL,即not only sql, 是一種非關系型的資料存儲,key/value鍵值對存儲。現有Nosql DB 産品: Redis/MongoDB/Memcached/Hbase/Cassandra/ Tokyo Cabinet/Voldemort/Dynomite/Riak/ CouchDB/Hypertable/Flare/Tin/Lightcloud/ KiokuDB/Scalaris/Kai/ThruDB, 等等~~~
為什麼需要NoSQL非關系型資料庫?
- High performance - 對資料庫高并發讀寫的需求
- Huge Storage - 對海量資料的高效率存儲和通路的需求
- High Scalability && High Availability- 對資料庫的高可擴充性和高可用性的需求
Redis簡介
已經有了Membercache和各種資料庫,Redis為什麼會産生?Redis純粹為應用而産生,它是一個高性能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,解決了斷電後資料完全丢失的情況;在部分場合可以對關系資料庫起到很好的補充作用。性能測試結果表示SET操作每秒鐘可達110000次,GET操作每秒81000次(當然不同的伺服器配置性能不同)。
Redis是一種面向“鍵/值”對類型資料的分布式NoSQL資料庫系統,特點是高性能,持久存儲,适應高并發的應用場景。和Memcached類似,它支援存儲的value類型相對更多,包括string(字元串)、list(連結清單)、set(集合)和zset(有序集合)。 這些資料類型支援push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的,支援各種不同方式的排序。redis 與memcached一樣,為了保證效率,資料都是緩存在記憶體中。差別的是redis會周期性的把更新的資料寫入磁盤或者把修改 操作寫入追加的記錄檔案,并且在此基礎上實作了master-slave(主從)同步。
redis目前提供四種資料類型:string,list,set及zset(sorted set)。
Redis的存儲分為記憶體存儲、磁盤存儲和log檔案三部分,配置檔案中有三個參數對其進行配置。
- save seconds updates :指出在多長時間内,有多少次更新操作,就将資料同步到資料檔案。
- appendonly yes/no :是否在每次更新操作後進行日志記錄。如果不開啟,可能會在斷電時導緻一段時間内的資料丢失。因為redis本身同步資料 檔案是按上面的save條件來同步的,是以有的資料會在一段時間内隻存在于記憶體中。
- appendfsync no/always/everysec :資料緩存同步至磁盤的方式。no表示等作業系統進行資料緩存同步到磁盤,always表示每次更新操作後手動調用fsync()将資料寫到磁盤,everysec表示每秒同步一次。
Windows下Redis的安裝及使用
先在網上下載下傳redis,我下載下傳的是redis-2.0.2(
http://download.csdn.net/download/linyu19872008/4179367),我解壓到了和安裝python相同的目錄下,進入redis-2.0.2,下面有這幾個檔案:

redis-server.exe redis伺服器的daemon啟動程式
redis.conf redis配置檔案
redis-cli.exe redis指令行操作工具。當然,也可以用telnet根據其純文字協定來操作
redis-check-dump.exe 本地資料庫檢查
redis-check-aof.exe 更新日志檢查
redis-benchmark.exe 性能測試,用以模拟同時由N個用戶端發送M個 SETs/GETs 查詢 (類似于 Apache的 ab 工具)
benchmark工具測試資訊:
向redis伺服器發送10萬個請求,每個請求附帶60個并發用戶端
哎呀,我的電腦有點吃不消了,不過最終還是顯示出了4.03秒完成了10萬個請求的測試,
部分結果截圖如下:
啟動Redis服務(conf檔案制定配置檔案(redis-server.exe redis.conf ),若不指定則預設):
啟動cmd視窗要一直開着,關閉後則Redis服務關閉。
這時服務開啟着,另外開一個cmd視窗進行,設定用戶端:
C:\redis-2.0.2>redis-cli.exe -h 127.0.0.1 -p 6379
然後我們就可以在這裡輸入我們想要輸入的指令,redis很重要的一個操作就是set和get
用戶端如下:
此時伺服器端(這裡也是本機)顯示如下(有一個用戶端連接配接了):
上述在用戶端設定的key是常駐記憶體的,就是關閉視窗,下次開視窗get key的值還是“jzhou”,呵呵。
(注意操作時,伺服器端一定要開啟服務,否則用戶端連不上。)
Redis提供了多種語言的用戶端,包括Java,C++,python。
python操作redis
若要用python操作redis,則需下載下傳一個redis的python開發包redis-py(這個網上有
https://github.com/andymccurdy/redis-py)下載下傳下來後我将它放在了python的安裝目錄下,進入redis-py目錄,執行setup.py(需要下載下傳setuptools,然後執行python setup.py install 就OK了)
幾秒鐘就安裝好了,進入python環境,呵呵,随便做點啥,以表明redis導入成功了:
我退出了cmd,想直接在python的IDE中來import redis,但是導入失敗了,提示不存在此子產品,我想了想,哦,我應該将redis-py這個路徑加入系統環境變量,這樣python就能識别了,果真如此,我将"C:\Python27\redis-py",加入了系統path,再次在python自帶的IDE中操作redis成功了,這樣就不用每次在cmd那黑框框中輸入了。
初識redis第一課,如有錯誤,敬請指出。
作者:
zhoujie出處:
http://www.cnblogs.com/zhoujie/本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,不然我擔心部落格園找你算賬
如果您覺得本文對你有幫助,請豎起您的大拇指右下角點推薦,也可以關注我