高性能NoSQL數(shù)據(jù)庫Redis+盛大_IT168文庫_第1頁
高性能NoSQL數(shù)據(jù)庫Redis+盛大_IT168文庫_第2頁
高性能NoSQL數(shù)據(jù)庫Redis+盛大_IT168文庫_第3頁
高性能NoSQL數(shù)據(jù)庫Redis+盛大_IT168文庫_第4頁
高性能NoSQL數(shù)據(jù)庫Redis+盛大_IT168文庫_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、高性能NoSQL數(shù)據(jù)庫Redis盛大在線:徐江濤博客:http:/NoSQL 大行其道APP高并發(fā)請求海量化數(shù)據(jù)Disk內(nèi)存圖靈獎得主Jim Gray :“內(nèi)存是新的硬盤,硬盤是新的磁帶”memcachedRedis分享大綱Redis是什么Redis的特性Redis的API及適用場景Redis的使用經(jīng)驗,運維參數(shù)Redis是什么sponsored by:What is Redis is.an “advanced key-value store”b yS A LVATO R E S A N F I L I P P O( a n t i r e z )Redis vs MemcachedMemca

2、ched 操作實例鍵(keys)值(values)page:index.html.user:101:sessionxDrSdEwd4dSlZkEkj+login_count“100001”user:100:last_login_time“102736485756”所有的操作都是基于字符串、或者是2進(jìn)制的數(shù)據(jù)格式、操作起來大部分是GET、SET這2個命令操作,易于使用Redis vs Memcached 和Memcached 一樣、使用簡單、性能高效(1G 1M)異步持久化存儲支持多種數(shù)據(jù)類型;Strings(字符)、 Lists(鏈表)、Sets(集合)、ZSets(有序集合)、Hashes(

3、哈希)更多、更方便API接口 管理數(shù)據(jù);More commandsand More.Is RedisRedis vs MemcachedRedis 數(shù)據(jù)類型實例鍵(keys)值(values)page:index.html.users_logged_in_today 1, 2, 3, 4, 5 latest_post_ids201, 204, 209,.users_and_scoresjoe 1.3483bert 93.4fred 283.22chris 23774.17StringSetsListZSetsRedis的API及適用場景Strings 字符./redis-cli SET mys

4、tring “ hello world ”C clientkeyvalue./redis-cli GET mystring hello worldreturnGETSETMGETSETNXSETEXMSETMSETNXRedis的API及適用場景Strings 字符INCRINCRBYDECRDECRBYAPPENDSUBSTRRedis的API及適用場景Expiration當(dāng)把Redis當(dāng)作緩存服務(wù)使用時,你可以設(shè)置數(shù)據(jù)的過期時間,不管是數(shù)據(jù)類型(string,list,zsets,sets,hash)是什么,此系列命令都有效EXPIRE paitoubing 1234TTL paitoub

5、ing = 1234秒秒Redis的API及適用場景Deleting KeysDEL paitoubingEXISTS paitoubing = 0 (false)Redis的API及適用場景ListsabcdefLPUSHRPUSHLPOPRPOPLPUSH paitoubing aRedis的API及適用場景ListsabcdefLLEN = 6xLREM 1 bLRANGE 2 3LINDEX 5Redis的API及適用場景隊列服務(wù)QueuesabcdefRPUSHLPOPRPUSH paitoubing abcRPUSH paitoubing defLPOP paitoubing =

6、“abc”LPOP paitoubing = “def”LPOP paitoubing = (nil)Redis的API及適用場景集合Setsuid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejieSREM uid:1:followers wangermazixSMOVE uid:1:followers uid:2:followers lisiSADD uid:2:followers tomRedis的AP

7、I及適用場景集合Setsuid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejieSCARD uid:1:followers = 7SISMEMBER uid:1:followers xinxin = 0 (meaning false)SRANDMEMBER uid:1:followers = “xiaoyueyue”SMEMBERS uid:2:followers= xiaoyueyue fengjie l

8、iyuchun furongjiejieRedis的API及適用場景集合Sets(交集、并集、差集)uid:1:followersbruce tom zhangsan lisi wangermazi xiaoyueyue fengjieuid:2:followersxiaoyueyue fengjie liyuchun furongjiejiexiaoyueyue fengjieSINTER uid:1:followers uid:2:followers = xiaoyueyue fengjieSINTERSTORESUNION SUNIONSTORESDIFF SDIFFSTORERedis

9、的API及適用場景有序集合ZSetsLike Sets 每個元素,增加了rank,或是scoreno time!Redis的API及適用場景Hashes(哈希)產(chǎn)品:Product 1created_at : 1290149988product_id : 1name : 盛大點券available : 100HSET product:1 created_at 1290149988HSET product:1 name “盛大點券”HSET product:1 available 100HGET product:1 name = 盛大點券HLEN product:1 = 3HKEYS produ

10、ct:1 = created_at, name,availableHGETALL product:1 = created_at = 102374657 name= 盛大點券 available= 100HVALS HEXISTS HINCRBY HMGET HMSETRedis的API及適用場景Redis Social Network (社會化網(wǎng)絡(luò))UGC好友:雙向關(guān)系粉絲:單向關(guān)系textphotomore.blog、Message、photo、Redis的API及適用場景新增用戶usernameuseridINCR next_user_idReturn s uidSET user:uid:

11、name usernameSET username:username idInt 整形變量值新增日記contentauthorI NCR next_post_idReturn s pidSET post:pid:content contentSET post:pid:author uidLPUSH user:uid:posts pidLPUSH posts:global pidRedis Social Network (社會化網(wǎng)絡(luò))Unique IDsSORTZCARDMONITORSLAVEOFRENAMESELECTSAVESUBSCRIBEPUBLISHRedis的API及適用場景Eno

12、ugh commands! (版本更新快)Redis的安裝下載:http:/ zxvf redis-version.tar.gzcd redis-versionmake由于沒有make install,所以得把源代碼目錄里的關(guān)鍵文件手動復(fù)制到適當(dāng)?shù)奈恢茫篶p redis.conf /etc/cp redis-benchmark redis-cli redis-server /usr/bin/修改/etc/redis.conf daemonize yes 啟動redis服務(wù)# /usr/bin/redis-server /etc/redis.confRedis的安裝Redis.conf (配置文

13、件)daemonize yes = 以守護(hù)進(jìn)程的方式運行maxmemory = Redis在啟動時會把所有數(shù)據(jù)加載到內(nèi)存中 ,設(shè)置使用內(nèi)存限制 , 新的vm機(jī)制,key存放內(nèi)存,value會存放在swap區(qū),不建議 可通過consistent hashing把數(shù)據(jù)分布到多個服務(wù)器上 save 900 1save 300 10save 60 10000 = 900秒內(nèi)有1個改變, 300秒內(nèi)有10個改變, 60秒內(nèi)有10000個改變, redis就會內(nèi)存中的key保存到數(shù)據(jù)庫文件中去 dbfilename dump.rdb 保存數(shù)據(jù)的路徑slaveof 6379 = 在啟

14、動時,REDIS會自動從MASTER上把數(shù)據(jù) 先同步過來,而無需我們手動進(jìn)行 MASTER上每有一次落地保存,會自動向SLAVE進(jìn)行同步。當(dāng)然這里的問題是,如果MASTER不保存,SLAVE也就無法得到這些數(shù)據(jù),這和REDIS本身的內(nèi)存寫磁盤邏輯是一樣 Redis的安裝requirepass = 連接密碼(注釋)rdbcompression = 存儲至本地數(shù)據(jù)庫時是否壓縮數(shù)據(jù),默認(rèn)為yesmasterauth = 當(dāng)本機(jī)為從服務(wù)時, 設(shè)置主服務(wù)的連接密碼(注釋)maxclients = 最大客戶端連接數(shù),默認(rèn)不限制(注釋)appendonly = 是否在每次更新操作后進(jìn)行日志記錄,如果不開啟,

15、可能會在斷電時導(dǎo)致一段時間內(nèi)的數(shù)據(jù)丟失。因為redis本身同步數(shù)據(jù)文件是按上面save條件來同步的,所以有的數(shù)據(jù)會在一段時間內(nèi)只存在于內(nèi)存中。默認(rèn)值為noappendfsync = 更新日志條件,共有3個可選值。no表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤,always表示每次更新操作后手動調(diào)用fsync()將數(shù)據(jù)寫到磁盤,everysec表示每秒同步一次(默認(rèn)值)。vm-enabled 是否使用虛擬內(nèi)存NO PRODUCT !Redis的主從-集群clientclientclientmastermastermasterslaveslaveslaveCONSISTENT HASH / 定容 readwrite同步數(shù)據(jù)https:/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論