亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5329 | 回復(fù): 2
打印 上一主題 下一主題

[Redis] Redis之七種武器 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-02-15 14:01 |只看該作者 |倒序?yàn)g覽
Redis之七種武器








長(zhǎng)生劍、孔雀翎、碧玉刀、多情環(huán)、離別鉤、霸王槍、拳頭是古龍筆下的七種武器,而本文打算將Redis的幾種使用方式 Strings、Hashs、Lists、Sets、Sorted Sets、Pub/Sub、Transactions 也比作七種武器,為大家講解Redis的七種特性,并列舉其適合的應(yīng)用場(chǎng)景。

Strings
Strings 數(shù)據(jù)結(jié)構(gòu)是簡(jiǎn)單的key-value類型,value其實(shí)不僅是String,也可以是數(shù)字。使用Strings類型,你可以完全實(shí)現(xiàn)目前 Memcached 的功能,并且效率更高。還可以享受Redis的定時(shí)持久化,操作日志及 Replication等功能。除了提供與 Memcached 一樣的get、set、incr、decr 等操作外,Redis還提供了下面一些操作:

獲取字符串長(zhǎng)度
往字符串a(chǎn)ppend內(nèi)容
設(shè)置和獲取字符串的某一段內(nèi)容
設(shè)置及獲取字符串的某一位(bit)
批量設(shè)置一系列字符串的內(nèi)容
Hashs
在Memcached中,我們經(jīng)常將一些結(jié)構(gòu)化的信息打包成hashmap,在客戶端序列化后存儲(chǔ)為一個(gè)字符串的值,比如用戶的昵稱、年齡、性別、積分等,這時(shí)候在需要修改其中某一項(xiàng)時(shí),通常需要將所有值取出反序列化后,修改某一項(xiàng)的值,再序列化存儲(chǔ)回去。這樣不僅增大了開銷,也不適用于一些可能并發(fā)操作的場(chǎng)合(比如兩個(gè)并發(fā)的操作都需要修改積分)。而Redis的Hash結(jié)構(gòu)可以使你像在數(shù)據(jù)庫中Update一個(gè)屬性一樣只修改某一項(xiàng)屬性值。

Lists
Lists 就是鏈表,相信略有數(shù)據(jù)結(jié)構(gòu)知識(shí)的人都應(yīng)該能理解其結(jié)構(gòu)。使用Lists結(jié)構(gòu),我們可以輕松地實(shí)現(xiàn)最新消息排行等功能。Lists的另一個(gè)應(yīng)用就是消息隊(duì)列,可以利用Lists的PUSH操作,將任務(wù)存在Lists中,然后工作線程再用POP操作將任務(wù)取出進(jìn)行執(zhí)行。Redis還提供了操作Lists中某一段的api,你可以直接查詢,刪除Lists中某一段的元素。

Sets
Sets 就是一個(gè)集合,集合的概念就是一堆不重復(fù)值的組合。利用Redis提供的Sets數(shù)據(jù)結(jié)構(gòu),可以存儲(chǔ)一些集合性的數(shù)據(jù),比如在微博應(yīng)用中,可以將一個(gè)用戶所有的關(guān)注人存在一個(gè)集合中,將其所有粉絲存在一個(gè)集合。Redis還為集合提供了求交集、并集、差集等操作,可以非常方便的實(shí)現(xiàn)如共同關(guān)注、共同喜好、二度好友等功能,對(duì)上面的所有集合操作,你還可以使用不同的命令選擇將結(jié)果返回給客戶端還是存集到一個(gè)新的集合中。

Sorted Sets
和Sets相比,Sorted Sets增加了一個(gè)權(quán)重參數(shù)score,使得集合中的元素能夠按score進(jìn)行有序排列,比如一個(gè)存儲(chǔ)全班同學(xué)成績(jī)的Sorted Sets,其集合value可以是同學(xué)的學(xué)號(hào),而score就可以是其考試得分,這樣在數(shù)據(jù)插入集合的時(shí)候,就已經(jīng)進(jìn)行了天然的排序。另外還可以用Sorted Sets來做帶權(quán)重的隊(duì)列,比如普通消息的score為1,重要消息的score為2,然后工作線程可以選擇按score的倒序來獲取工作任務(wù)。讓重要的任務(wù)優(yōu)先執(zhí)行。

Pub/Sub
Pub/Sub 從字面上理解就是發(fā)布(Publish)與訂閱(Subscribe),在Redis中,你可以設(shè)定對(duì)某一個(gè)key值進(jìn)行消息發(fā)布及消息訂閱,當(dāng)一個(gè)key值上進(jìn)行了消息發(fā)布后,所有訂閱它的客戶端都會(huì)收到相應(yīng)的消息。這一功能最明顯的用法就是用作實(shí)時(shí)消息系統(tǒng),比如普通的即時(shí)聊天,群聊等功能。

Transactions
誰說NoSQL都不支持事務(wù),雖然Redis的Transactions提供的并不是嚴(yán)格的ACID的事務(wù)(比如一串用EXEC提交執(zhí)行的命令,在執(zhí)行中服務(wù)器宕機(jī),那么會(huì)有一部分命令執(zhí)行了,剩下的沒執(zhí)行),但是這個(gè)Transactions還是提供了基本的命令打包執(zhí)行的功能(在服務(wù)器不出問題的情況下,可以保證一連串的命令是順序在一起執(zhí)行的,中間有會(huì)有其它客戶端命令插進(jìn)來執(zhí)行)。Redis還提供了一個(gè)Watch功能,你可以對(duì)一個(gè)key進(jìn)行Watch,然后再執(zhí)行Transactions,在這過程中,如果這個(gè)Watched的值進(jìn)行了修改,那么這個(gè)Transactions會(huì)發(fā)現(xiàn)并拒絕執(zhí)行。

好了,本文就先說到這里,上面這些這只是Redis API的一些使用方式,可謂冰山一角,Redis就像一把瑞士軍刀一樣(或者是更萬能的中國軍鏟),它創(chuàng)造了一系列更接受于使用場(chǎng)景的數(shù)據(jù)結(jié)構(gòu)和API,目的在于讓我們更直接的基于應(yīng)用場(chǎng)景進(jìn)行存儲(chǔ)設(shè)計(jì)。更多的應(yīng)用場(chǎng)景和組合式的應(yīng)用還有待您自己的發(fā)掘;蛘叨嚓P(guān)注本站(NoSQLFan.COM),你也能發(fā)現(xiàn)一些有意思的基于Redis的應(yīng)用。同時(shí)也歡迎將你對(duì)Redis的使用方法通過NoSQLFan分享給更多的朋友。

相關(guān)閱讀:Redis命令列表(中文版

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-02-15 14:01 |只看該作者
謝謝分享

論壇徽章:
14
處女座
日期:2013-11-26 09:21:15操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-25 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-22 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-21 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-11-13 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-11-01 06:20:002015亞冠之卡爾希納薩夫
日期:2015-09-29 13:31:42IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-13 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00雙魚座
日期:2014-07-17 15:08:51卯兔
日期:2014-04-08 09:54:34
3 [報(bào)告]
發(fā)表于 2013-09-28 17:55 |只看該作者
總結(jié)的不錯(cuò)
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP