1. 程式人生 > 其它 >Redis 常考面試題

Redis 常考面試題

Redis的主要缺點:

  是資料庫容量受到實體記憶體的限制,不能用作海量資料的高效能讀寫,因此Redis適合的場景主要侷限在較小資料量的高效能操作和運算上。

使用redis有哪些好處?  

(1) 速度快,因為資料存在記憶體中,類似於HashMap,HashMap的優勢就是查詢和操作的時間複雜度都是O(1)
(2) 支援豐富資料型別,支援string,list,set,sorted set,hash
(3) 支援事務,操作都是原子性,所謂的原子性就是對資料的更改要麼全部執行,要麼全部不執行
(4) 豐富的特性:可用於快取,訊息,按key設定過期時間,過期後將會自動刪除

redis記憶體淘汰策略(mySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料)

相關知識:redis可以配置記憶體大小。redis 記憶體資料集大小上升到一定大小的時候,就會施行資料淘汰策略(回收策略)。redis 提供 6種資料淘汰策略,這個策略可以在配置檔案中配置:

  • volatile-lru:從已設定過期時間的資料集(server.db[i].expires)中挑選最近最少使用的資料淘汰
  • volatile-ttl:從已設定過期時間的資料集(server.db[i].expires)中挑選將要過期的資料淘汰
  • volatile-random:從已設定過期時間的資料集(server.db[i].expires)中任意選擇資料淘汰
  • allkeys-lru:從資料集(server.db[i].dict)中挑選最近最少使用的資料淘汰
  • allkeys-random:從資料集(server.db[i].dict)中任意選擇資料淘汰
  • no-enviction(驅逐):禁止驅逐資料

請用Redis和任意語言實現一段惡意登入保護的程式碼,限制1小時內每使用者Id最多隻能登入5次。

  用redis list實現:列表中key是使用者ID,列表中value存放的是登入的時間戳,只要最後的第5次登陸時的時間和第一次登入的時間差不超過1小時就禁止登陸.