NoSQL和Redis簡(jiǎn)介及Redis在Windows下的安裝和使用教程
NoSQL簡(jiǎn)介
介紹redis前,我想還是先認(rèn)識(shí)下NoSQL,即not only sql, 是一種非關(guān)系型的數(shù)據(jù)存儲(chǔ),key/value鍵值對(duì)存儲(chǔ)?,F(xiàn)有Nosql DB 產(chǎn)品: Redis/MongoDB/Memcached/Hbase/Cassandra/ Tokyo Cabinet/Voldemort/Dynomite/Riak/ CouchDB/Hypertable/Flare/Tin/Lightcloud/ KiokuDB/Scalaris/Kai/ThruDB, 等等~~~
為什么需要NoSQL非關(guān)系型數(shù)據(jù)庫(kù)?
1.High performance - 對(duì)數(shù)據(jù)庫(kù)高并發(fā)讀寫(xiě)的需求
2.Huge Storage - 對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問(wèn)的需求
3.High Scalability && High Availability- 對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展性和高可用性的需求
Redis簡(jiǎn)介
已經(jīng)有了Membercache和各種數(shù)據(jù)庫(kù),Redis為什么會(huì)產(chǎn)生?Redis純粹為應(yīng)用而產(chǎn)生,它是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)keyvalue存儲(chǔ)的不足,解決了斷電后數(shù)據(jù)完全丟失的情況;在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。性能測(cè)試結(jié)果表示SET操作每秒鐘可達(dá)110000次,GET操作每秒81000次(當(dāng)然不同的服務(wù)器配置性能不同)。
Redis是一種面向“鍵/值”對(duì)類(lèi)型數(shù)據(jù)的分布式NoSQL數(shù)據(jù)庫(kù)系統(tǒng),特點(diǎn)是高性能,持久存儲(chǔ),適應(yīng)高并發(fā)的應(yīng)用場(chǎng)景。和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。 這些數(shù)據(jù)類(lèi)型支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的,支持各種不同方式的排序。redis 與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改 操作寫(xiě)入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
redis目前提供四種數(shù)據(jù)類(lèi)型:string,list,set及zset(sorted set)。
Redis的存儲(chǔ)分為內(nèi)存存儲(chǔ)、磁盤(pán)存儲(chǔ)和log文件三部分,配置文件中有三個(gè)參數(shù)對(duì)其進(jìn)行配置。
1.save seconds updates :指出在多長(zhǎng)時(shí)間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件。
2.appendonly yes/no :是否在每次更新操作后進(jìn)行日志記錄。如果不開(kāi)啟,可能會(huì)在斷電時(shí)導(dǎo)致一段時(shí)間內(nèi)的數(shù)據(jù)丟失。因?yàn)?.redis本身同步數(shù)據(jù) 文件是按上面的save條件來(lái)同步的,所以有的數(shù)據(jù)會(huì)在一段時(shí)間內(nèi)只存在于內(nèi)存中。
appendfsync no/always/everysec :數(shù)據(jù)緩存同步至磁盤(pán)的方式。no表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤(pán),always表示每次更新操作后手動(dòng)調(diào)用fsync()將數(shù)據(jù)寫(xiě)到磁盤(pán),everysec表示每秒同步一次。
Windows下Redis的安裝及使用
先在網(wǎng)上下載redis,我下載的是redis-2.0.2(http://download.csdn.net/download/linyu19872008/4179367),我解壓到了和安裝python相同的目錄下,進(jìn)入redis-2.0.2,下面有這幾個(gè)文件:
redis-server.exe redis服務(wù)器的daemon啟動(dòng)程序
redis.conf redis配置文件
redis-cli.exe redis命令行操作工具。當(dāng)然,也可以用telnet根據(jù)其純文本協(xié)議來(lái)操作
redis-check-dump.exe 本地?cái)?shù)據(jù)庫(kù)檢查
redis-check-aof.exe 更新日志檢查
redis-benchmark.exe 性能測(cè)試,用以模擬同時(shí)由N個(gè)客戶(hù)端發(fā)送M個(gè) SETs/GETs 查詢(xún) (類(lèi)似于 Apache的 ab 工具)
benchmark工具測(cè)試信息:
向redis服務(wù)器發(fā)送10萬(wàn)個(gè)請(qǐng)求,每個(gè)請(qǐng)求附帶60個(gè)并發(fā)客戶(hù)端
哎呀,我的電腦有點(diǎn)吃不消了,不過(guò)最終還是顯示出了4.03秒完成了10萬(wàn)個(gè)請(qǐng)求的測(cè)試,
部分結(jié)果截圖如下:
啟動(dòng)Redis服務(wù)(conf文件制定配置文件(redis-server.exe redis.conf ),若不指定則默認(rèn)):
啟動(dòng)cmd窗口要一直開(kāi)著,關(guān)閉后則Redis服務(wù)關(guān)閉。
這時(shí)服務(wù)開(kāi)啟著,另外開(kāi)一個(gè)cmd窗口進(jìn)行,設(shè)置客戶(hù)端:
C:\redis-2.0.2>redis-cli.exe -h 127.0.0.1 -p 6379
然后我們就可以在這里輸入我們想要輸入的命令,redis很重要的一個(gè)操作就是set和get
客戶(hù)端如下:
此時(shí)服務(wù)器端(這里也是本機(jī))顯示如下(有一個(gè)客戶(hù)端連接了):
上述在客戶(hù)端設(shè)置的key是常駐內(nèi)存的,就是關(guān)閉窗口,下次開(kāi)窗口get key的值還是“jzhou”,呵呵。
(注意操作時(shí),服務(wù)器端一定要開(kāi)啟服務(wù),否則客戶(hù)端連不上。)
Redis提供了多種語(yǔ)言的客戶(hù)端,包括Java,C++,python。
python操作redis
若要用python操作redis,則需下載一個(gè)redis的python開(kāi)發(fā)包redis-py(這個(gè)網(wǎng)上有https://github.com/andymccurdy/redis-py)下載下來(lái)后我將它放在了python的安裝目錄下,進(jìn)入redis-py目錄,執(zhí)行setup.py(需要下載setuptools,然后執(zhí)行python setup.py install 就OK了)
幾秒鐘就安裝好了,進(jìn)入python環(huán)境,呵呵,隨便做點(diǎn)啥,以表明redis導(dǎo)入成功了:
我退出了cmd,想直接在python的IDE中來(lái)import redis,但是導(dǎo)入失敗了,提示不存在此模塊,我想了想,哦,我應(yīng)該將redis-py這個(gè)路徑加入系統(tǒng)環(huán)境變量,這樣python就能識(shí)別了,果真如此,我將"C:\Python27\redis-py",加入了系統(tǒng)path,再次在python自帶的IDE中操作redis成功了,這樣就不用每次在cmd那黑框框中輸入了。
初識(shí)redis第一課,如有錯(cuò)誤,敬請(qǐng)指出。
相關(guān)文章
Redis?RESP?協(xié)議實(shí)現(xiàn)實(shí)例詳解
這篇文章主要為大家介紹了Redis?RESP?協(xié)議實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Redis從單點(diǎn)到集群部署模式(單機(jī)模式?主從模式?哨兵模式)
這篇文章主要為大家介紹了Redis從單點(diǎn)集群部署模式(單機(jī)模式?主從模式?哨兵模式)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11生產(chǎn)redisson延時(shí)隊(duì)列不消費(fèi)問(wèn)題排查解決
這篇文章主要為大家介紹了生產(chǎn)redisson延時(shí)隊(duì)列不消費(fèi)問(wèn)題排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09