初識Redis及Redis在Windows下的安裝和使用

  • A+
所屬分類:NoSQL Redis

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,下面有這幾個文件:
key-value

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個并發客戶端
key-value

哎呀,我的電腦有點吃不消了,不過最終還是顯示出了4.03秒完成了10萬個請求的測試,

部分結果截圖如下:
key-value

 

 

 

 

啟動Redis服務(conf文件制定配置文件(redis-server.exe redis.conf ),若不指定則默認):
key-value

啟動cmd窗口要一直開著,關閉后則Redis服務關閉。

這時服務開啟著,另外開一個cmd窗口進行,設置客戶端:

C:\redis-2.0.2>redis-cli.exe -h 127.0.0.1 -p 6379

然后我們就可以在這里輸入我們想要輸入的命令,redis很重要的一個操作就是set和get

客戶端如下:
key-value

此時服務器端(這里也是本機)顯示如下(有一個客戶端連接了):
key-value

 

 

上述在客戶端設置的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了)
key-value

 

 

 

幾秒鐘就安裝好了,進入python環境,呵呵,隨便做點啥,以表明redis導入成功了:
key-value

我退出了cmd,想直接在python的IDE中來import redis,但是導入失敗了,提示不存在此模塊,我想了想,哦,我應該將redis-py這個路徑加入系統環境變量,這樣python就能識別了,果真如此,我將"C:\Python27\redis-py",加入了系統path,再次在python自帶的IDE中操作redis成功了,這樣就不用每次在cmd那黑框框中輸入了。

轉自:http://www.cnblogs.com/zhoujie/archive/2013/05/19/redis1.html

weinxin
微信公眾號
掃一掃關注運維生存時間公眾號,獲取最新技術文章~

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: