国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲

這篇具有很好參考價(jià)值的文章主要介紹了【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?????作者名稱:DaenCode
??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。
??人生感悟:嘗盡人生百味,方知世間冷暖。
??所屬專欄:Redis從頭學(xué)


【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲,Redis從頭學(xué),redis,數(shù)據(jù)庫,緩存


??前言

之前的篇章對Redis的String、List、Hash數(shù)據(jù)類型已經(jīng)做出了具體分析,并舉例說明了其具體的實(shí)戰(zhàn)場景本文就結(jié)合Set數(shù)據(jù)類型結(jié)構(gòu)的特性,一起探討其實(shí)戰(zhàn)中的應(yīng)用場景,并以社交平臺(tái)中的引力簽、共同關(guān)注好友、是否是某人的粉絲等等為例來展示set數(shù)據(jù)類型的特點(diǎn)。

??Set數(shù)據(jù)類型分析

Redis中的Set數(shù)據(jù)類型是一種無序、不重復(fù)的集合,它提供了高效的集合操作,例如添加、刪除、判斷元素是否存在等。下面對Redis Set數(shù)據(jù)類型進(jìn)行一些分析:

  1. 無序性:Set中的元素是無序存儲(chǔ)的,每次獲取的順序可能不同。這使得Set非常適合于存儲(chǔ)不需要特定順序的元素。
  2. 元素的唯一性:Set保證其中的元素都是唯一的,即不會(huì)存在重復(fù)的元素。當(dāng)向Set中添加已經(jīng)存在的元素時(shí),新元素將被忽略。
  3. 高效的添加、刪除和判斷操作:Set提供了O(1)時(shí)間復(fù)雜度的添加、刪除和判斷元素是否存在的操作。這歸功于Redis內(nèi)部使用了哈希表來實(shí)現(xiàn)Set數(shù)據(jù)類型。
  4. 集合運(yùn)算:Redis的Set數(shù)據(jù)類型支持集合運(yùn)算,例如交集、并集、差集等操作??梢詫Χ鄠€(gè)Set進(jìn)行集合運(yùn)算,方便進(jìn)行數(shù)據(jù)分析和處理。
  5. 存儲(chǔ)大量的元素:Set可以存儲(chǔ)大量的元素,并且在數(shù)量上沒有明確的限制。這使得Set非常適用于需要存儲(chǔ)和處理大型集合的場景。

??Set類型實(shí)戰(zhàn)應(yīng)用場景

Set常用于存儲(chǔ)用戶標(biāo)簽、好友列表、點(diǎn)贊列表、投票系統(tǒng)等場景。它可以快速判斷元素是否存在,進(jìn)行集合運(yùn)算,滿足各種實(shí)時(shí)數(shù)據(jù)處理的需求。

總而言之,Redis的Set數(shù)據(jù)類型提供了高效、靈活且功能強(qiáng)大的集合操作,適用于需要存儲(chǔ)和處理無序且不重復(fù)元素的場景。它在實(shí)時(shí)數(shù)據(jù)分析、用戶關(guān)系管理等方面具有廣泛的應(yīng)用。

用戶畫像去重功能

生活中的例子

比如說交友平臺(tái)的用戶標(biāo)簽,以Soul平臺(tái)為例或者王者榮耀中的賽季標(biāo)簽等等。
【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲,Redis從頭學(xué),redis,數(shù)據(jù)庫,緩存

代碼示例

利用set數(shù)據(jù)類型無序且元素不可重復(fù)的特點(diǎn)。通過members API來取出所有的用戶畫像并自動(dòng)的進(jìn)行去重。

@Test
void userProfile(){
		BoundSetOperations operations=redisTemplate.boundSetOps("user:tagg:1");
		operations.add("car","student","rich","dog","dog");
		Set<String> set=operations.members();
		System.out.println("此用戶畫像為"+set);
}

運(yùn)行結(jié)果:
此用戶畫像為[car, dog, rich, student]

共同關(guān)注、專屬粉絲

生活中的例子

類似于抖音或者小紅書上經(jīng)常會(huì)在推薦或者可能認(rèn)識的人中,會(huì)有灰色字體提示你們共同關(guān)注、共同好友、是否是你粉絲等等。
【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲,Redis從頭學(xué),redis,數(shù)據(jù)庫,緩存

代碼示例

通過其差集、交集、并集來實(shí)現(xiàn)集合間的運(yùn)算命令來實(shí)現(xiàn)共同關(guān)注、專屬粉絲等功能,以及isMember來判斷是否是某人的粉絲。

@Test
	void testSocial(){
		BoundSetOperations lzOperations=redisTemplate.boundSetOps("user:lz");
		lzOperations.add("A","B","C","E");
		System.out.println("老甄的粉絲"+lzOperations.members());

		BoundSetOperations llOperations=redisTemplate.boundSetOps("user:ll");
		llOperations.add("A","F","C","E");
		System.out.println("老李的粉絲"+llOperations.members());
		//差集
		Set lz=lzOperations.diff("user:ll");
		System.out.println("老甄專屬粉絲"+lz);
		Set ll=llOperations.diff("user:lz");
		System.out.println("老李專屬粉絲"+ll);
		//交集
		Set interSet=lzOperations.intersect("user:ll");
		System.out.println("同時(shí)關(guān)注"+interSet);
		//并集
		Set unionSet=lzOperations.union("user:ll");
		System.out.println("兩個(gè)人的并集"+unionSet);
		//是否是某人粉絲
		boolean flag=lzOperations.isMember("A");
		System.out.println("A是否是老甄的粉絲"+flag);
}

運(yùn)行結(jié)果:
老甄的粉絲[A, C, E, B]
老李的粉絲[A, C, E, F]
老甄專屬粉絲[B]
老李專屬粉絲[F]
同時(shí)關(guān)注[A, C, E]
兩個(gè)人的并集[C, F, E, B, A]
A是否是老甄的粉絲true

??寫在最后

有關(guān)于Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)應(yīng)用場景到此就結(jié)束了。功能演示代碼的邏輯簡單,目的是理解Set數(shù)據(jù)類型的應(yīng)用,實(shí)際場景的邏輯根據(jù)具體需求而定。感謝大家的閱讀,希望大家在評論區(qū)對此部分內(nèi)容散發(fā)討論或者有什么其他場景也可以在評論區(qū)提出。


【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲,Redis從頭學(xué),redis,數(shù)據(jù)庫,緩存文章來源地址http://www.zghlxwxcb.cn/news/detail-664049.html

到了這里,關(guān)于【Redis從頭學(xué)-7】Redis中的Set數(shù)據(jù)類型實(shí)戰(zhàn)場景之用戶畫像去重、共同關(guān)注、專屬粉絲的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Redis數(shù)據(jù)類型(list\set\zset)

    Redis數(shù)據(jù)類型(list\set\zset)

    \\\"maybe it\\\'s why\\\"? ????????列表類型是?來存儲(chǔ)多個(gè) 有序 的字符串,列表中的每個(gè)字符串稱為元素(element),?個(gè)列表最多可以存儲(chǔ)個(gè)2^32 - 1個(gè)元素。在Redis中,可以對列表兩端插?(push)和彈出(pop),還可以獲取指定范圍的元素列表、獲取指定索引下標(biāo)的元素等。列表是

    2024年02月11日
    瀏覽(18)
  • 【Redis】1、學(xué)習(xí) Redis 的五大基本數(shù)據(jù)類型【String、Hash、List、Set、SortedSet】

    【Redis】1、學(xué)習(xí) Redis 的五大基本數(shù)據(jù)類型【String、Hash、List、Set、SortedSet】

    ?? Redis 誕生于2009年,全稱是 Re mote D ictionary S erver,遠(yuǎn)程字典服務(wù)器,是一個(gè)基于 內(nèi)存的鍵值型 NoSQL 數(shù)據(jù)庫 ?? 鍵值(key-value)型,value 支持多種不同數(shù)據(jù)結(jié)構(gòu),功能豐富 ?? 單線程,每個(gè)命令具備 原子性 ?? 低延遲,速度快(基于內(nèi)存、IO 多路復(fù)用、良好的編碼) ??支

    2024年02月11日
    瀏覽(23)
  • Redis的五種數(shù)據(jù)類型(string、hash 、list、set、zset)

    Redis的五種數(shù)據(jù)類型(string、hash 、list、set、zset)

    ???????? ????????Redis 提供了豐富的數(shù)據(jù)類型,常見的有五種: String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合) 。 ????????String 是最基本的 key-value 結(jié)構(gòu),key 是唯一標(biāo)識,value 是具體的值,value其實(shí)不僅是字符串, 也可以是數(shù)字(整

    2024年01月25日
    瀏覽(26)
  • Redis常用數(shù)據(jù)類型和使用場景

    Redis常用數(shù)據(jù)類型和使用場景

    Redis目前支持5種數(shù)據(jù)類型,分別是: ? ? String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合) 下面就分別介紹這五種數(shù)據(jù)類型及其相應(yīng)的操作命令。 ? 1. String(字符串) String是簡單的 key-value 鍵值對,value 不僅可以是 String,也可以是數(shù)字。String在r

    2024年02月16日
    瀏覽(29)
  • Redis數(shù)據(jù)類型詳解與應(yīng)用場景

    目錄 1. 字符串(String) 1.1 使用場景 1.2 代碼示例 2. 列表(List) 2.1 使用場景 2.2 代碼示例 3. 集合(Set) 3.1 使用場景 3.2 代碼示例 4. 散列(Hash) 4.1 使用場景 4.2 代碼示例 5. 有序集合(Sorted Set) 5.1 使用場景 5.2 代碼示例 6. 二進(jìn)制位圖(Bitmap) 6.1 使用場景 6.2 代碼示例 7.

    2024年01月22日
    瀏覽(15)
  • Redis 數(shù)據(jù)類型及其常用命令一(string、list、set、zset、hash)

    Redis 數(shù)據(jù)類型及其常用命令一(string、list、set、zset、hash)

    1、簡介 ? ? ? ? Redis 的常用數(shù)據(jù)類型有十種,分別為:string、list、set、zset、hash、geo、hyperloglog、bitmap、bitfield、stream。熟練使用各種數(shù)據(jù)類型,能夠快速結(jié)合場景進(jìn)行使用。 注:我們所說的數(shù)據(jù)類型是指 value 的數(shù)據(jù)類型,key 都是字符串。 所有類型的命令查看:help @數(shù)據(jù)類

    2024年03月13日
    瀏覽(29)
  • Redis的五大數(shù)據(jù)類型及其使用場景

    redis是一個(gè)非??焖??的非關(guān)系數(shù)據(jù)庫??解決方案。其簡單的鍵值數(shù)據(jù)模型使 Redis 能夠處理大型數(shù)據(jù)集,同時(shí)保持令人印象深刻的讀寫速度和可用性。?redis提供了五種數(shù)據(jù)類型,分別是是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sor

    2024年02月16日
    瀏覽(18)
  • 【Redis】九種數(shù)據(jù)類型及應(yīng)用場景

    【Redis】九種數(shù)據(jù)類型及應(yīng)用場景

    Redis是一個(gè)開源的,基于內(nèi)存的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),可以用作數(shù)據(jù)庫、緩存和消息中間件。它支持多種數(shù)據(jù)類型,包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(ZSet )、地理空間(Geo)、位圖(Bitmaps)、基數(shù)統(tǒng)計(jì)(HyperLogLog)、流信息(Stream

    2024年01月19日
    瀏覽(15)
  • Redis五大基本數(shù)據(jù)類型及其使用場景

    Redis五大基本數(shù)據(jù)類型及其使用場景

    Nosql = not only sql(不僅僅是SQL) 關(guān)系型數(shù)據(jù)庫:列+行,同一個(gè)表下數(shù)據(jù)的結(jié)構(gòu)是一樣的。 非關(guān)系型數(shù)據(jù)庫:數(shù)據(jù)存儲(chǔ)沒有固定的格式,并且可以進(jìn)行橫向擴(kuò)展。 NoSQL泛指非關(guān)系型數(shù)據(jù)庫,隨著web2.0互聯(lián)網(wǎng)的誕生,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫很難對付web2.0大數(shù)據(jù)時(shí)代!尤其是超大規(guī)

    2024年02月12日
    瀏覽(15)
  • Redis基本數(shù)據(jù)類型常用操作以及使用場景

    單值緩存 對象緩存 分布式鎖 計(jì)數(shù)器 分布式系統(tǒng)全局序列號?? ? ? 對象緩存 電商購物車 優(yōu)缺點(diǎn) 隊(duì)列 微博消息和微信公號消息? 微信抽獎(jiǎng)小程序? 微信微博點(diǎn)贊,收藏,標(biāo)簽? ?集合操作實(shí)現(xiàn)微博微信關(guān)注模型 集合操作實(shí)現(xiàn)電商商品篩選? 常用操作 ?Zset集合操作實(shí)現(xiàn)排行

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包