偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Redis Sets 使用場(chǎng)景有哪些?如何實(shí)現(xiàn)共同好友?

開發(fā) 前端
Java 的 HashSet 底層是用 HashMap 實(shí)現(xiàn)的,Sets 的底層數(shù)據(jù)結(jié)構(gòu)是用散列表實(shí)現(xiàn)的,散列表的 key 存儲(chǔ)的是 Sets 中元素的 value,散列表的 value 指向 NULL。

Redis Sets 是什么?

Sets 的功能類似 Java 中的 HashSet,是通過(guò)散列表實(shí)現(xiàn)的,所以添加、刪除、查找元素的時(shí)間復(fù)雜度是 O(1)。

Sets 是字符串類型的無(wú)序集合,集合中的元素是唯一的,不會(huì)出現(xiàn)重復(fù)的數(shù)據(jù)。

Java 的 HashSet 底層是用 HashMap 實(shí)現(xiàn)的,Sets 的底層數(shù)據(jù)結(jié)構(gòu)是用散列表實(shí)現(xiàn)的,散列表的 key 存儲(chǔ)的是 Sets 中元素的 value,散列表的 value 指向 NULL。

不同的是,當(dāng)元素內(nèi)容都是 64 位以內(nèi)的十進(jìn)制整數(shù),并且元素個(gè)數(shù)不超過(guò) set-max- intset-entries 配置的值(默認(rèn)為 512)時(shí),Sets 會(huì)使用更加省內(nèi)存的 intset(整形數(shù)組)來(lái)存儲(chǔ)。

圖片圖片

使用場(chǎng)景

當(dāng)你需要存儲(chǔ)多個(gè)元素,并且要求不能出現(xiàn)重復(fù)數(shù)據(jù),無(wú)須考慮元素的有序性時(shí),可以使用 Sets。

Sets 還支持在集合之間做交集、并集、差集操作,例如統(tǒng)計(jì)如下場(chǎng)景中多個(gè)集合元素的聚合結(jié)果。

◎ 統(tǒng)計(jì)多個(gè)元素的共有數(shù)據(jù)(交集)。

◎ 對(duì)于兩個(gè)集合,統(tǒng)計(jì)其中的一個(gè)獨(dú)有元素(差集)。

◎ 統(tǒng)計(jì)多個(gè)集合的所有元素(并集)。

常見(jiàn)的使用場(chǎng)景如下。

◎ 社交軟件中共同關(guān)注:通過(guò)交集實(shí)現(xiàn)。

◎ 每日新增關(guān)注數(shù):對(duì)近兩天的總注冊(cè)用戶量集合取差集。

◎ 打標(biāo)簽:你可以為自己收藏的每一篇文章打標(biāo)簽,例如微信收藏功能,這樣可以快速地找到被添加了某個(gè)標(biāo)簽的所有文章。

出招實(shí)戰(zhàn):共同好友

三國(guó)天下有限公司開發(fā)了一款名為「三國(guó)戀」的社交 App,需要實(shí)現(xiàn)共同好友功能,這個(gè)場(chǎng)景就能通過(guò)交集來(lái)實(shí)現(xiàn)。

我們?yōu)槊總€(gè)用戶創(chuàng)建一個(gè) Sets 集合,將賬號(hào)名作為集合的 key,集合 value 存儲(chǔ)該賬號(hào)的好友。如下命令構(gòu)建劉備和曹操的好友集合。

SADD user:劉備 趙子龍 張飛 關(guān)羽 貂蟬
SADD user:曹操 貂蟬 夏侯惇 典韋 張遼

想要知道兩個(gè)人的共同好友,也就是兩個(gè)集合的交集,只需要使用 SINTERSTORE 命令。

SINTERSTORE user:曹劉好友 user:劉備 user:曹操

命令執(zhí)行后,劉備與曹操兩個(gè)集合的交集數(shù)據(jù)就存儲(chǔ)到了 user:曹劉好友 集合中。接著使用 SMEMBERS 查看曹操與劉備的共同好友。

好家伙,他們都喜歡貂蟬,你喜不喜歡呢?

圖片圖片圖片

責(zé)任編輯:武曉燕 來(lái)源: 碼哥跳動(dòng)
相關(guān)推薦

2022-10-17 00:27:20

二叉樹數(shù)組索引

2024-12-31 07:56:33

Disruptor內(nèi)存有界隊(duì)列消費(fèi)模式

2023-04-03 11:01:26

低代碼平臺(tái)場(chǎng)景

2025-06-26 02:23:00

2025-02-11 09:49:12

2020-11-20 10:53:46

邊緣計(jì)算

2023-12-29 10:28:24

SPIJava靈活性

2025-01-15 07:54:02

2021-03-16 06:47:47

Python

2021-08-13 12:31:26

Redis代碼Java

2024-01-03 10:32:36

2022-07-24 21:56:38

元宇宙

2020-10-16 09:09:20

機(jī)器學(xué)習(xí)銀行技術(shù)

2024-10-25 16:31:17

Redis數(shù)據(jù)預(yù)處理線程

2023-01-30 11:27:57

人工智能高性能計(jì)算CPU

2021-09-18 10:20:07

Redis數(shù)據(jù)庫(kù)緩存

2021-12-01 23:34:10

EtcdRedis場(chǎng)景

2018-03-27 09:10:54

區(qū)塊鏈

2024-05-29 14:34:07

2023-05-16 07:47:18

RabbitMQ消息隊(duì)列系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)