最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

了解Redis常見(jiàn)應(yīng)用場(chǎng)景

 更新時(shí)間:2021年06月23日 09:44:29   作者:IT王小二  
Redis是一個(gè)key-value存儲(chǔ)系統(tǒng),現(xiàn)在在各種系統(tǒng)中的使用越來(lái)越多,大部分情況下是因?yàn)槠涓咝阅艿奶匦?,被?dāng)做緩存使用,這里介紹下Redis經(jīng)常遇到的使用場(chǎng)景

一、String 場(chǎng)景

計(jì)數(shù)功能:

  • 例如掘金文章點(diǎn)擊數(shù)量,閱讀數(shù)量。
  • 集群環(huán)境下的session共享。

二、Hash 場(chǎng)景

各種 商城購(gòu)物車(chē) (淘寶,京東。。)

設(shè)計(jì)思路:

1.購(gòu)物車(chē)綁定了 userId

2.商品id作為feild,商品數(shù)量作為value。

模擬過(guò)程:

// 初始化購(gòu)物車(chē)數(shù)據(jù)

hmset userId:1 prod:1 1 prod:2 3 prod:3 4

// 增加商品 prod:1 購(gòu)買(mǎi)數(shù)量為2件時(shí)

hincrby userId:1  prod:1 1

// 減少商品 prod:2 數(shù)量為1件時(shí)

hincrby userId:1 prod:2 -2

// 刪除商品 prod:1 時(shí)

hdel userId:1 prod:1

// 統(tǒng)計(jì)商品數(shù)

hlen userId:1

三、List 場(chǎng)景

微信公眾號(hào)訂閱消息

設(shè)計(jì)思路:

公眾號(hào)發(fā)布消息時(shí),向訂閱本公眾號(hào)的用戶(mess:1)推送(將訂閱消息id通過(guò)lpush放入用戶的list中),模擬過(guò)程。

模擬過(guò)程:

// 推送消息

lpush mess:1 999

lpush mess:1 1000

lpush mess:1 1010

// 查看消息,返回結(jié)果1010 1000 999

lrange mess:1 0 -1

四、Set 場(chǎng)景

限時(shí)抽獎(jiǎng)活動(dòng):例如微信有個(gè)活動(dòng),活動(dòng)id為2,如何基于Redis設(shè)計(jì)實(shí)現(xiàn)。

設(shè)計(jì)思路:

用戶點(diǎn)擊立即參與后,將用戶id保存到活動(dòng)id的集合中,利用Set集合的元素唯一性可查看參加用戶、參加用戶數(shù)量等等。

模擬過(guò)程:

// 用戶user:1 user:2 user:3參加抽獎(jiǎng)活動(dòng)act:888

sadd act:888 user:1 user:2 user:3

// 模擬一次性隨機(jī)抽獎(jiǎng)1名

srandmember act:888

// 模擬兩次抽獎(jiǎng),兩次抽獎(jiǎng)不重復(fù),使用spop命令,抽取中的用戶會(huì)從set中移除

spop act:888

spop act:888

好友關(guān)系:共同關(guān)注,我關(guān)注的人也關(guān)注了他,我可能認(rèn)識(shí)的人

注: 如果數(shù)據(jù)量大的情況下使用大數(shù)據(jù)分析

設(shè)計(jì)思路:兩個(gè)集合取交集

模擬過(guò)程:

// 三個(gè)用戶關(guān)注的人

sadd user:1 zhangsan lisi wangwu

sadd user:2 zhangsan liliu wanger wangwu

sadd user:3 list wangwu liliu

// user:1和user:2共同關(guān)注的人,取交集,返回zhangsan wangwu

sinter user:1 user:2

五、zSet 場(chǎng)景

各種榜單:

例如百度新聞排名

設(shè)計(jì)思路:

將新聞id作為member,點(diǎn)擊次數(shù)設(shè)置為score,每點(diǎn)擊一次score+1,當(dāng)然,為了每日榜單,member在設(shè)計(jì)時(shí)可以加上后綴用于日期區(qū)分,例如news:20191216、news:20191217 。

模擬過(guò)程:

// 增加熱點(diǎn)新聞

zadd topic:20191216 100 new:1 200 new:2 150 new:3 500 new:4

// new:1點(diǎn)擊了120次,點(diǎn)擊數(shù)變?yōu)?20

zincrby topic:20191216 120 new:1

// 查看今日排行前3名,返回 new:4 500 new:1 220 new:2 200

zrevrange topic:20191216 0 2 withscores

zadd topic:20191217 110 new:1 200 new:2 150 new:3 100 new:4

zadd topic:20191218 110 new:5 200 new:2 150 new:6 100 new:7

// 合并三日的數(shù)據(jù)

zunionstore topic:3day 3 topic:20191216 topic:20191217 topic:201912168

// 查看近三日排行榜前三名,返回new:4 600 new:2 600 new:1 330

zrevrange topic:3day 0 2 withscores

以上就是了解Redis常見(jiàn)應(yīng)用場(chǎng)景的詳細(xì)內(nèi)容,更多關(guān)于Redis常見(jiàn)應(yīng)用場(chǎng)景的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Redis設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間的方法詳解

    Redis設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間的方法詳解

    這篇文章主要介紹了Redis如何設(shè)置鍵的生存時(shí)間或過(guò)期時(shí)間,通過(guò)EXPIRE命令或者PEXIPIRE命令,客戶端可以以秒或者毫秒精度為數(shù)據(jù)庫(kù)中的某個(gè)鍵設(shè)置生存時(shí)間,文中有詳細(xì)的代碼供供大家參考,需要的朋友可以參考下
    2024-03-03
  • Redis list 類型學(xué)習(xí)筆記與總結(jié)

    Redis list 類型學(xué)習(xí)筆記與總結(jié)

    這篇文章主要介紹了Redis list 類型學(xué)習(xí)筆記與總結(jié),本文著重講解了關(guān)于List的一些常用方法,比如lpush 方法、lrange 方法、rpush 方法、linsert 方法、 lset 方法等,需要的朋友可以參考下
    2015-06-06
  • redis啟動(dòng)失敗問(wèn)題之完美解決方案

    redis啟動(dòng)失敗問(wèn)題之完美解決方案

    這篇文章主要介紹了redis啟動(dòng)失敗問(wèn)題之完美解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • phpredis提高消息隊(duì)列的實(shí)時(shí)性方法(推薦)

    phpredis提高消息隊(duì)列的實(shí)時(shí)性方法(推薦)

    下面小編就為大家?guī)?lái)一篇phpredis提高消息隊(duì)列的實(shí)時(shí)性方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • Redis批量生成數(shù)據(jù)的實(shí)現(xiàn)

    Redis批量生成數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了Redis批量生成數(shù)據(jù)的實(shí)現(xiàn),主要介紹了兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • redis執(zhí)行l(wèi)ua腳本的實(shí)現(xiàn)方法

    redis執(zhí)行l(wèi)ua腳本的實(shí)現(xiàn)方法

    redis在2.6推出了腳本功能,允許開(kāi)發(fā)者使用Lua語(yǔ)言編寫(xiě)腳本傳到redis中執(zhí)行。本文就介紹了redis執(zhí)行l(wèi)ua腳本的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2021-11-11
  • 帶你輕松掌握Redis分布式鎖

    帶你輕松掌握Redis分布式鎖

    這篇文章主要介紹了帶你輕松掌握Redis分布式鎖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Redis 事務(wù)知識(shí)點(diǎn)相關(guān)總結(jié)

    Redis 事務(wù)知識(shí)點(diǎn)相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下
    2021-03-03
  • Redis?ziplist?壓縮列表的源碼解析

    Redis?ziplist?壓縮列表的源碼解析

    ziplist 是一個(gè)經(jīng)過(guò)特殊編碼的雙向鏈表,旨在提高內(nèi)存效率,它存儲(chǔ)字符串和整數(shù)值,其中整數(shù)被編碼為實(shí)際整數(shù)而不是一系列字符,這篇文章主要介紹了Redis?ziplist?壓縮列表的源碼解析,需要的朋友可以參考下
    2022-06-06
  • redis配置standAlone版的jedisPool示例

    redis配置standAlone版的jedisPool示例

    這篇文章主要為大家介紹了redis配置standAlone版的jedisPool示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論

益阳市| 南川市| 兴山县| 九寨沟县| 故城县| 高台县| 司法| 四川省| 什邡市| 建瓯市| 凤山市| 息烽县| 青川县| 淅川县| 肥城市| 桂平市| 沙田区| 平原县| 新安县| 竹山县| 大冶市| 宜兴市| 凤翔县| 黑河市| 辽源市| 永年县| 宁武县| 杭锦旗| 友谊县| 朔州市| 波密县| 大新县| 哈尔滨市| 湖南省| 灵璧县| 绥滨县| 广河县| 沐川县| 杭锦旗| 昌邑市| 宝清县|