摘要:這個(gè)是類(lèi)似的一種結(jié)構(gòu),這個(gè)一般就是可以將結(jié)構(gòu)化的數(shù)據(jù),比如一個(gè)對(duì)象前提是這個(gè)對(duì)象沒(méi)嵌套其他的對(duì)象給緩存在里,然后每次讀寫(xiě)緩存的時(shí)候,可以就操作里的某個(gè)字段。
1.string這是最基本的類(lèi)型了,就是普通的set和get,做簡(jiǎn)單的kv緩存。
2.hash這個(gè)是類(lèi)似map的一種結(jié)構(gòu),這個(gè)一般就是可以將結(jié)構(gòu)化的數(shù)據(jù),比如一個(gè)對(duì)象(前提是這個(gè)對(duì)象沒(méi)嵌套其他的對(duì)象)給緩存在redis里,然后每次讀寫(xiě)緩存的時(shí)候,可以就操作hash里的某個(gè)字段。
key=150 value={ “id”: 150, “name”: “zhangsan”, “age”: 20 }
hash類(lèi)的數(shù)據(jù)結(jié)構(gòu),主要是用來(lái)存放一些對(duì)象,把一些簡(jiǎn)單的對(duì)象給緩存起來(lái),后續(xù)操作的時(shí)候,你可以直接僅僅修改這個(gè)對(duì)象中的某個(gè)字段的值
value={ “id”: 150, “name”: “zhangsan”, “age”: 21 }3.list
有序列表,這個(gè)是可以做很多不同操作的
比如:微博,某個(gè)大v的粉絲,就可以以list的格式放在redis里去緩存
key=某大v value=[zhangsan, lisi, wangwu]
比如:可以通過(guò)list存儲(chǔ)一些列表型的數(shù)據(jù)結(jié)構(gòu),類(lèi)似粉絲列表了、文章的評(píng)論列表了之類(lèi)的東西
比如:可以通過(guò)lrange命令,就是從某個(gè)元素開(kāi)始讀取多少個(gè)元素,可以基于list實(shí)現(xiàn)分頁(yè)查詢(xún),這個(gè)很棒的一個(gè)功能,基于redis實(shí)現(xiàn)簡(jiǎn)單的高性能分頁(yè),可以做類(lèi)似微博那種下拉不斷分頁(yè)的東西,性能高,就一頁(yè)一頁(yè)走
比如:可以搞個(gè)簡(jiǎn)單的消息隊(duì)列,從list頭懟進(jìn)去,從list尾巴那里弄出來(lái)
4.set無(wú)序集合,自動(dòng)去重
直接基于set將系統(tǒng)里需要去重的數(shù)據(jù)扔進(jìn)去,自動(dòng)就給去重了,如果你需要對(duì)一些數(shù)據(jù)進(jìn)行快速的全局去重,你當(dāng)然也可以基于jvm內(nèi)存里的HashSet進(jìn)行去重,但是如果你的某個(gè)系統(tǒng)部署在多臺(tái)機(jī)器上呢?
得基于redis進(jìn)行全局的set去重
可以基于set玩兒交集、并集、差集的操作,比如交集吧,可以把兩個(gè)人的粉絲列表整一個(gè)交集,看看倆人的共同好友是誰(shuí)?對(duì)吧
把兩個(gè)大v的粉絲都放在兩個(gè)set中,對(duì)兩個(gè)set做交集
5.sorted set排序的set,去重但是可以排序,寫(xiě)進(jìn)去的時(shí)候給一個(gè)分?jǐn)?shù),自動(dòng)根據(jù)分?jǐn)?shù)排序,這個(gè)可以玩兒很多的花樣,最大的特點(diǎn)是有個(gè)分?jǐn)?shù)可以自定義排序規(guī)則
比如說(shuō)你要是想根據(jù)時(shí)間對(duì)數(shù)據(jù)排序,那么可以寫(xiě)入進(jìn)去的時(shí)候用某個(gè)時(shí)間作為分?jǐn)?shù),人家自動(dòng)給你按照時(shí)間排序了
排行榜:將每個(gè)用戶(hù)以及其對(duì)應(yīng)的什么分?jǐn)?shù)寫(xiě)入進(jìn)去,zadd board score username,接著zrevrange board 0 99,就可以獲取排名前100的用戶(hù);zrank board username,可以看到用戶(hù)在排行榜里的排名
zadd board 85 zhangsan zadd board 72 wangwu zadd board 96 lisi zadd board 62 zhaoliu 96 lisi 85 zhangsan 72 wangwu 62 zhaoliu zrevrange board 0 3 獲取排名前3的用戶(hù) 96 lisi 85 zhangsan 72 wangwu zrank board zhaoliu 4
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/7208.html
摘要:事件分派器會(huì)根據(jù)每個(gè)當(dāng)前產(chǎn)生的事件,來(lái)選擇對(duì)應(yīng)的事件處理器來(lái)處理。核心是基于非阻塞的多路復(fù)用機(jī)制單線(xiàn)程避免了多線(xiàn)程上下文切換的開(kāi)銷(xiāo)。 1.memcached和redis有什么區(qū)別? (1)Redis支持服務(wù)器端的數(shù)據(jù)操作 redis和memcached相比,redis擁有更多的 數(shù)據(jù)結(jié)構(gòu)并且支持更豐富的數(shù)據(jù)操作 ,通常在memcached里面,你需要將數(shù)據(jù)拿到客戶(hù)端來(lái)進(jìn)行類(lèi)型的修改然后在se...
摘要:的過(guò)期策略是什么樣的采用了定期刪除惰性刪除的過(guò)期策略。定期刪除原理定期刪除指的是默認(rèn)每隔就隨機(jī)抽取一些設(shè)置了過(guò)期時(shí)間的,檢測(cè)這些是否過(guò)期,如果過(guò)期了就將其刪掉。所有只會(huì)抽取一部分而不會(huì)全部檢查。 1.數(shù)據(jù)為什么會(huì)過(guò)期? 首先,要明白redis是用來(lái)做數(shù)據(jù)緩存的,不是用來(lái)做數(shù)據(jù)存儲(chǔ)的(當(dāng)然也可以當(dāng)數(shù)據(jù)庫(kù)用),所以數(shù)據(jù)時(shí)候過(guò)期的,過(guò)期的數(shù)據(jù)就不見(jiàn)了,過(guò)期主要有兩種情況, ①在設(shè)置緩存數(shù)據(jù)時(shí)制定了...
摘要:一個(gè)對(duì)應(yīng)一個(gè),但是里面進(jìn)行了多線(xiàn)程消費(fèi),這樣也會(huì)造成消息消費(fèi)順序錯(cuò)誤。保證消息的消費(fèi)順序拆分多個(gè),每個(gè)一個(gè),就是多一些而已,確實(shí)是麻煩點(diǎn)這樣也會(huì)造成吞吐量下降,可以在消費(fèi)者內(nèi)部采用多線(xiàn)程的方式取消費(fèi)。 1.為什么要保證順序 消息隊(duì)列中的若干消息如果是對(duì)同一個(gè)數(shù)據(jù)進(jìn)行操作,這些操作具有前后的關(guān)系,必須要按前后的順序執(zhí)行,否則就會(huì)造成數(shù)據(jù)異常。舉例: 比如通過(guò)mysql binlog進(jìn)行兩個(gè)數(shù)據(jù)...
摘要:消費(fèi)端弄丟了數(shù)據(jù)關(guān)閉自動(dòng)提交,在自己處理完畢之后手動(dòng)提交,這樣就不會(huì)丟失數(shù)據(jù)。弄丟了數(shù)據(jù)一般要求設(shè)置個(gè)參數(shù)來(lái)保證消息不丟失給設(shè)置參數(shù)這個(gè)值必須大于,表示要求每個(gè)必須至少有個(gè)副本。上一篇如何保證消息不重復(fù)消費(fèi)下一篇如何保證消息按順序執(zhí)行 1.mq原則 數(shù)據(jù)不能多,也不能少,不能多是說(shuō)消息不能重復(fù)消費(fèi),這個(gè)我們上一節(jié)已解決;不能少,就是說(shuō)不能丟失數(shù)據(jù)。如果mq傳遞的是非常核心的消息,支撐核心的業(yè)...
摘要:數(shù)量對(duì)吞吐量的影響可以達(dá)到幾百幾千個(gè)的級(jí)別,吞吐量會(huì)有小幅度的下降。這是的一大優(yōu)勢(shì),可在同等數(shù)量機(jī)器下支撐大量的從幾十個(gè)到幾百個(gè)的時(shí)候,吞吐量會(huì)大幅下降。下一篇如何保證消息隊(duì)列的高可用 1.為什么使用消息隊(duì)列? (1)解耦:可以在多個(gè)系統(tǒng)之間進(jìn)行解耦,將原本通過(guò)網(wǎng)絡(luò)之間的調(diào)用的方式改為使用MQ進(jìn)行消息的異步通訊,只要該操作不是需要同步的,就可以改為使用MQ進(jìn)行不同系統(tǒng)之間的聯(lián)系,這樣項(xiàng)目之間...
閱讀 2703·2021-11-22 15:24
閱讀 1441·2021-11-17 09:38
閱讀 2830·2021-10-09 09:57
閱讀 1266·2019-08-30 15:44
閱讀 2507·2019-08-30 14:00
閱讀 3615·2019-08-30 11:26
閱讀 2995·2019-08-29 16:28
閱讀 835·2019-08-29 13:56