成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:Redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維 Redis
Redis的散列可以讓用戶將多個(gè)鍵值對(duì)存儲(chǔ)到一個(gè)Redis的鍵里面,散列非常適用于將一些相關(guān)的數(shù)據(jù)存儲(chǔ)在一起。

[[273484]]

string

緩存

簡(jiǎn)單key-value存儲(chǔ)

分布式鎖

setnx key value,當(dāng)key不存在時(shí),將 key 的值設(shè)為 value ,返回1

若給定的 key 已經(jīng)存在,則setnx不做任何動(dòng)作,返回0。

當(dāng)setnx返回1時(shí),表示獲取鎖,做完操作以后del key,表示釋放鎖,如果setnx返回0表示獲取鎖失敗,整體思路大概就是這樣

計(jì)數(shù)器

如知乎每個(gè)問題的被瀏覽器次數(shù)

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?
  1. set key 0 
  2. incr key // incr readcount::{帖子id} 每閱讀一次 
  3. get key // get readcount::{帖子id} 獲取閱讀量 

分布式全局唯一id

分布式全局唯一id的實(shí)現(xiàn)方式有很多,這里只介紹用redis實(shí)現(xiàn)

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

每次獲取userId的時(shí)候,對(duì)userId加1再獲取,可以改進(jìn)為如下形式

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

直接獲取一段userId的最大值,緩存到本地慢慢累加,快到了userId的最大值時(shí),再去獲取一段,一個(gè)用戶服務(wù)宕機(jī)了,也頂多一小段userId沒有用到

  1. set userId 0 
  2. incr usrId //返回1 
  3. incrby userId 1000 //返回10001 

hash

redis的散列可以讓用戶將多個(gè)鍵值對(duì)存儲(chǔ)到一個(gè)Redis的鍵里面,散列非常適用于將一些相關(guān)的數(shù)據(jù)存儲(chǔ)在一起。類似map的一種結(jié)構(gòu),將結(jié)構(gòu)化的數(shù)據(jù),比如一個(gè)對(duì)象(前提是這個(gè)對(duì)象沒嵌套其他的對(duì)象)給緩存到redis中,以后每次讀寫內(nèi)存時(shí),就可以操作hash里的某個(gè)字段

list

消息隊(duì)列

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

在list里面一邊進(jìn),一邊出即可

  1. ## 實(shí)現(xiàn)方式一 
  2. lpush key value //一直往list左邊放 
  3. brpop key value 10  
  4. //key這個(gè)list有元素時(shí),直接彈出,沒有元素被阻塞,直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止,上面例子超時(shí)時(shí)間為10s 
  5.  
  6. ## 實(shí)現(xiàn)方式二 
  7. rpush key value 
  8. blpop key value 10 

新浪/Twitter用戶消息列表

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

加入說小編li關(guān)注了2個(gè)微博a和b,a發(fā)了一條微博(編號(hào)為100)就執(zhí)行如下命令

  1. lpush msg::li 100 

b發(fā)了一條微博(編號(hào)為200)就執(zhí)行如下命令:

  1. lpush msg::li 200 

假如想拿最近的10條消息就可以執(zhí)行如下命令(最新的消息一定在list的最左邊):

  1. lrange msg::li 0 9 //下標(biāo)從0開始,[start,stop]是閉區(qū)間,都包含 

set

無序集合,自動(dòng)去重,將數(shù)據(jù)放到set中就可去重,可以基于JVM的HashSet去重,如果系統(tǒng)部署在多臺(tái)機(jī)器上,就可以用redis進(jìn)行全局去重

可以基于set做交集,并集,差集的操作。如把2個(gè)人的粉絲列表弄一個(gè)交集,就能看到兩個(gè)人的共同好友是誰

實(shí)現(xiàn)點(diǎn)贊,簽到,like等功能

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?
  1. // 1001用戶給8001帖子點(diǎn)贊 
  2. sadd like::8001 1001 
  3. srem like::8001 1001 //取消點(diǎn)贊 
  4. sismember like::8001 1001 //檢查用戶是否點(diǎn)過贊 
  5. smembers like::8001 //獲取點(diǎn)贊的用戶列表 
  6. scard like::8001 //獲取點(diǎn)贊用戶數(shù) 

實(shí)現(xiàn)關(guān)注模型,可能認(rèn)識(shí)的人

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

seven關(guān)注的人

sevenSub -> {qing, mic, james}

青山關(guān)注的人

qingSub->{seven,jack,mic,james}

Mic關(guān)注的人

MicSub->{seven,james,qing,jack,tom}

  1. //返回sevenSub和qingSub的交集,即seven和青山的共同關(guān)注 
  2. sinter sevenSub qingSub -> {mic,james} 
  3. // 我關(guān)注的人也關(guān)注他,下面例子中我是seven 
  4.  
  5. // qing在micSub中返回1,否則返回0 
  6. sismember micSub qing 
  7. sismember jamesSub qing 
  8.  
  9. // 我可能認(rèn)識(shí)的人,下面例子中我是seven 
  10. // 求qingSub和sevenSub的差集,并存在sevenMayKnow集合中 
  11. sdiffstore sevenMayKnow qingSub sevenSub -> {seven,jack} 

電商商品篩選

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?

 

每個(gè)商品入庫(kù)的時(shí)候即會(huì)建立他的靜態(tài)標(biāo)簽列表如,品牌,尺寸,處理器,內(nèi)存

  1. // 將拯救者y700P-001和ThinkPad-T480這兩個(gè)元素放到集合brand::lenovo 
  2. sadd brand::lenovo 拯救者y700P-001 ThinkPad-T480 
  3. sadd screenSize::15.6 拯救者y700P-001 機(jī)械革命Z2AIR 
  4. sadd processor::i7 拯救者y700P-001 機(jī)械革命X8TIPlus 
  5.  
  6. // 獲取品牌為聯(lián)想,屏幕尺寸為15.6,并且處理器為i7的電腦品牌(sinter為獲取集合的交集) 
  7. sinter brand::lenovo screenSize::15.6 processor::i7 -> 拯救者y700P-001 

zset

排序的set,可以去重還可以排序,寫進(jìn)去的時(shí)候給一個(gè)分?jǐn)?shù),自動(dòng)根據(jù)根據(jù)分?jǐn)?shù)排序,分?jǐn)?shù)可以自定義排序規(guī)則

redis的zset天生是用來做排行榜的、好友列表, 去重, 歷史記錄等業(yè)務(wù)需求

面試官:redis五種基本數(shù)據(jù)類型的應(yīng)用場(chǎng)景是啥?
  1. // user1的用戶分?jǐn)?shù)為 10 
  2. zadd ranking 10 user1 
  3. zadd ranking 20 user2 
  4. // 取分?jǐn)?shù)最高的3個(gè)用戶 
  5. zrevrange ranking 0 2 withscores 

 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2024-11-04 06:20:00

Redis單線程

2023-07-04 08:41:08

Redis數(shù)據(jù)類型

2023-11-13 08:31:25

SpringRedis存儲(chǔ)

2020-12-01 11:50:49

數(shù)據(jù)庫(kù)Redis面試

2019-11-11 14:55:25

Redis數(shù)據(jù)類型命令

2021-05-31 10:35:34

TCPWebSocket協(xié)議

2024-05-29 14:34:07

2021-06-15 09:20:08

Redis數(shù)據(jù)類型

2020-11-04 07:34:02

Redis數(shù)據(jù)類型

2023-04-28 15:05:25

React軟件項(xiàng)目可維護(hù)性

2021-09-16 07:52:18

算法應(yīng)用場(chǎng)景

2021-07-07 08:36:45

React應(yīng)用場(chǎng)景

2021-07-12 08:35:24

組件應(yīng)用場(chǎng)景

2024-03-13 14:57:37

2011-05-26 14:27:56

java

2021-11-10 07:47:49

組合模式場(chǎng)景

2021-11-04 06:58:32

策略模式面試

2021-08-16 08:33:26

git

2021-11-03 14:10:28

工廠模式場(chǎng)景

2021-11-05 07:47:56

代理模式對(duì)象
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 羞羞网站免费 | 日韩欧美一区二区三区免费观看 | 久久久久亚洲精品 | www精品| 精品免费国产一区二区三区四区 | 亚洲男人网 | 97国产在线观看 | 蜜桃传媒一区二区 | 91看片免费版 | 欧美一区二区在线免费观看 | 亚洲成av人影片在线观看 | 国产一区不卡 | 91麻豆精品国产91久久久更新资源速度超快 | 免费v片在线观看 | 亚洲网站在线观看 | 中文字幕日韩欧美一区二区三区 | 国产无人区一区二区三区 | 精品成人免费视频 | 国产男人的天堂 | 欧美日韩综合视频 | 精彩视频一区二区三区 | 在线免费黄色 | 黄在线| 美女人人操 | 五月综合久久 | 久久精品二区亚洲w码 | 国产一区 在线视频 | 九九亚洲 | 久久精品二区亚洲w码 | 九色av| 国产精品久久久久久吹潮 | 欧美精品一区二区免费 | 国产91视频免费 | 手机看黄av免费网址 | 中文字幕91 | 久久国产精品久久国产精品 | 黄色一级片视频 | 欧美久久久久久久 | 成人精品在线观看 | 欧美日韩一 | 国产精品一区久久久 |