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

面試官:Redis五種基本數據類型的應用場景是啥?

運維 數據庫運維 Redis
Redis的散列可以讓用戶將多個鍵值對存儲到一個Redis的鍵里面,散列非常適用于將一些相關的數據存儲在一起。

[[273484]]

string

緩存

簡單key-value存儲

分布式鎖

setnx key value,當key不存在時,將 key 的值設為 value ,返回1

若給定的 key 已經存在,則setnx不做任何動作,返回0。

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

計數器

如知乎每個問題的被瀏覽器次數

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

分布式全局唯一id

分布式全局唯一id的實現方式有很多,這里只介紹用redis實現

面試官:redis五種基本數據類型的應用場景是啥?

 

每次獲取userId的時候,對userId加1再獲取,可以改進為如下形式

面試官:redis五種基本數據類型的應用場景是啥?

 

直接獲取一段userId的最大值,緩存到本地慢慢累加,快到了userId的最大值時,再去獲取一段,一個用戶服務宕機了,也頂多一小段userId沒有用到

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

hash

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

list

消息隊列

面試官:redis五種基本數據類型的應用場景是啥?

 

在list里面一邊進,一邊出即可

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

新浪/Twitter用戶消息列表

面試官:redis五種基本數據類型的應用場景是啥?

 

加入說小編li關注了2個微博a和b,a發了一條微博(編號為100)就執行如下命令

  1. lpush msg::li 100 

b發了一條微博(編號為200)就執行如下命令:

  1. lpush msg::li 200 

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

  1. lrange msg::li 0 9 //下標從0開始,[start,stop]是閉區間,都包含 

set

無序集合,自動去重,將數據放到set中就可去重,可以基于JVM的HashSet去重,如果系統部署在多臺機器上,就可以用redis進行全局去重

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

實現點贊,簽到,like等功能

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

實現關注模型,可能認識的人

面試官:redis五種基本數據類型的應用場景是啥?

 

seven關注的人

sevenSub -> {qing, mic, james}

青山關注的人

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

Mic關注的人

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

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

電商商品篩選

面試官:redis五種基本數據類型的應用場景是啥?

 

每個商品入庫的時候即會建立他的靜態標簽列表如,品牌,尺寸,處理器,內存

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

zset

排序的set,可以去重還可以排序,寫進去的時候給一個分數,自動根據根據分數排序,分數可以自定義排序規則

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

面試官:redis五種基本數據類型的應用場景是啥?
  1. // user1的用戶分數為 10 
  2. zadd ranking 10 user1 
  3. zadd ranking 20 user2 
  4. // 取分數最高的3個用戶 
  5. zrevrange ranking 0 2 withscores 

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2024-11-04 06:20:00

Redis單線程

2023-07-04 08:41:08

Redis數據類型

2023-11-13 08:31:25

SpringRedis存儲

2020-12-01 11:50:49

數據庫Redis面試

2019-11-11 14:55:25

Redis數據類型命令

2021-05-31 10:35:34

TCPWebSocket協議

2024-05-29 14:34:07

2021-06-15 09:20:08

Redis數據類型

2020-11-04 07:34:02

Redis數據類型

2023-04-28 15:05:25

React軟件項目可維護性

2021-07-12 08:35:24

組件應用場景

2021-09-16 07:52:18

算法應用場景

2021-07-07 08:36:45

React應用場景

2024-03-13 14:57:37

2021-11-09 08:51:13

模式命令面試

2021-11-05 07:47:56

代理模式對象

2011-05-26 14:27:56

java

2021-11-10 07:47:49

組合模式場景

2021-11-04 06:58:32

策略模式面試

2021-11-03 14:10:28

工廠模式場景
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产1区2区在线观看 | 久久久久高清 | 午夜婷婷激情 | 欧美日韩视频 | 北条麻妃99精品青青久久 | 亚洲视频自拍 | 欧美视频日韩 | 色www精品视频在线观看 | 欧美成视频在线观看 | 久久精品亚洲 | 日韩精品一区二区三区在线观看 | 久久国产精品精品国产色婷婷 | 九九热在线视频免费观看 | 国产网站在线播放 | 2018国产精品 | 色资源在线 | 天天操操操操操 | 中文字幕国产精品 | 亚洲精品区 | 欧美一区二区另类 | 国产成人在线视频播放 | 麻豆亚洲 | 九九久久国产精品 | 亚洲精品电影网在线观看 | 国产91在线精品 | 影视先锋av资源噜噜 | 国产日韩一区二区三区 | 欧美综合一区二区 | 色综合久久久 | 国产精品美女久久久av超清 | av黄色免费在线观看 | 欧美一区二区成人 | 日本免费一区二区三区视频 | 国产精品久久久久久久久久久久冷 | 99久久日韩精品免费热麻豆美女 | 亚洲免费在线 | 中文字幕一区二区三区四区 | 国产精品一区三区 | 一区二区三区四区电影 | 久久久久一区 | 欧美精品一区二区三区在线播放 |