收集的一些Redis面試題,歡迎挑戰
一、 mySQL裡有2000w資料,redis中只存20w的資料,如何保證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(驅逐):禁止驅逐資料
二、Memcache與Redis的區別都有哪些?
1)、儲存方式
Memecache把資料全部存在記憶體之中,斷電後會掛掉,資料不能超過記憶體大小。
Redis有部份存在硬碟上,這樣能保證資料的永續性。
2)、資料支援型別
Memcache對資料型別支援相對簡單。
Redis有複雜的資料型別。
3)、使用底層模型不同
它們之間底層實現方式 以及與客戶端之間通訊的應用協議不一樣。
Redis直接自己構建了VM 機制 ,因為一般的系統呼叫系統函式的話,會浪費一定的時間去移動和請求。
三、 Redis 常見的效能問題都有哪些?如何解決?
1).Master寫記憶體快照,save命令排程rdbSave函式,會阻塞主執行緒的工作,當快照比較大時對效能影響是非常大的,會間斷性暫停服務,所以Master最好不要寫記憶體快照。
2).Master AOF持久化,如果不重寫AOF檔案,這個持久化方式對效能的影響是最小的,但是AOF檔案會不斷增大,AOF檔案過大會影響Master重啟的恢復速度。Master最好不要做任何持久化工作,包括記憶體快照和AOF日誌檔案,特別是不要啟用記憶體快照做持久化,如果資料比較關鍵,某個Slave開啟AOF備份資料,策略為每秒同步一次。
3).Master呼叫BGREWRITEAOF重寫AOF檔案,AOF在重寫的時候會佔大量的CPU和記憶體資源,導致服務load過高,出現短暫服務暫停現象。
4). Redis主從複製的效能問題,為了主從複製的速度和連線的穩定性,Slave和Master最好在同一個區域網內
四、請用Redis和任意語言實現一段惡意登入保護的程式碼,限制1小時內每使用者Id最多隻能登入5次。具體登入函式或功能用空函式即可,不用詳細寫出。
用列表實現:列表中每個元素代表登陸時間,只要最後的第5次登陸時間和現在時間差不超過1小時就禁止登陸.用Python寫的程式碼如下:
#!/usr/bin/env python3
import redis
import sys
import time
r = redis.StrictRedis(host=’127.0.0.1′, port=6379, db=0)
try:
id = sys.argv[1]
except:
print(‘input argument error’)
sys.exit(0)
if r.llen(id) >= 5 and time.time() – float(r.lindex(id, 4)) <= 3600:
print(“you are forbidden logining”)
else:
print(‘you are allowed to login’)
r.lpush(id, time.time())
# login_func()
相關推薦
收集的一些Redis面試題,歡迎挑戰
一、 mySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料 相關知識: redis 記憶體資料集大小上升到一定大小的時候,就會施行資料淘汰策略。redis 提供 6種資料淘汰策略: volatile-lru:從已
發一些Java面試題,上海尚學堂Java學員面試遇到的真題,值得學習
1. 下面哪些是Thread類的方法() A start() B run() C exit() &nbs
30道Redis面試題,面試官能問的都被我找到了
1、什麼是Redis?簡述它的優缺點? Redis本質上是一個Key-Value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。 因為是純記憶體操作,Redis的效能非常出色,每
分享30道Redis面試題,面試官能問到的我都找到了
1、什麼是Redis?簡述它的優缺點? Redis本質上是一個Key-Value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。 因為是純記憶體操作,Redis的效能非常出色
值得看|30道Redis面試題,面試官能問的都被我找到了
作者: 程式之心 連結:https://www.toutiao.com/i6579771325819126275/ 1、什麼是Redis?簡述它的優缺點? Redis本質上是一個Key-Value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶
46道史上最全Redis面試題,面試官能問的都被我找到了(含答案)
開發十年,就只剩下這套架構體系了! >>>
最近整理的一些常見的面試題,面試大全,黑馬程式設計師面試寶典題庫---最新技術--篇
第八章 最新技術(評論區留言獲取原件) 一、 Redis 1. Redis 的特點? Redis 是由義大利人 Salvatore Sanfilippo(網名: antirez)開發的一款記憶體快取記憶體資料庫。 Redis
最近整理的一些常見的面試題,面試大全,黑馬程式設計師面試寶典題庫---框架--篇
框架(評論留言獲取原件) 一、 SpringMVC 1. SpringMVC 的工作原理 a. 使用者向伺服器傳送請求,請求被 springMVC 前端控制器 DispatchServlet 捕獲; b. DispatcherServle 對請求 URL 進行解析,得到請求資源
最近整理的一些常見的面試題,面試大全,黑馬程式設計師面試寶典題庫---資料庫--篇
一、 Mysql 1. SQL 的 select 語句完整的執行順序 SQL Select 語句完整的執行順序: 1、 from 子句組裝來自不同資料來源的資料; 2、 where 子句基於指定的條件對記錄行進行篩選; 3、 group by 子句將資料劃分為多個分組; 4、使用聚集
最近整理的一些常見的面試題,面試大全,黑馬程式設計師面試寶典題庫---JavaWEE高階篇
一、 Filter 和 Listener(評論留言獲取原件) 可參見:https://www.cnblogs.com/libingbin/p/5985647.html 二、 AJAX 1. 談談你對 ajax 的認識? Ajax 是一種建立互動式網頁應用的的網頁開發技術;
最近整理的一些常見的面試題,面試大全,黑馬程式設計師面試寶典題庫---JavaWEB基礎篇
一、 JDBC 技術(評論留言獲取原件) 1. 說下原生 jdbc 操作資料庫流程?(2017-11-25-wzz) 第一步: Class.forName()載入資料庫連線驅動; 第二步: DriverManager.getConnection()獲取資料連線物件; 第三步:根據 SQL
27道Redis精選面試題,你會做幾題?
最近面試了幾家公司,都問到了Redis相關問題,當時準備面試時忽略了這方面內容,面試結果就可想而知了。面試回來後,收集了身邊朋友面試時遇到的關於redis的問題,進行了總結,記錄一下以便之後面試有所參考。 1、什麼是Redis?簡述它的優缺點? Redis的全稱是:Remote Dict
Redis 面試題 50 問,史上最全
1、什麼是Redis? Redis本質上是一個Key-Value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。因為是純記憶體操作,Redis的效能非常出色,每秒可以處理超過
總結了一些新的面試題,包含答案(持續更新中)
Java根底● 集合類以及集合框架;HashMap與HashTable完成原理,執行緒平安性,hash抵觸及處置演算法;ConcurrentHashMap;- Collection 集合的根介面+Set 繼承類,不能包含重複元素,無序+List 繼承類,可以包含重複元素,
高級Java面試題,你敢挑戰嗎?
team img rip objects 狀態 數據 ava 架構 restfu 這是一份高級Java面試題。這一份面試題論述了可變參數,斷言,垃圾回收,初始化器,令牌化,日期,日歷等等Java核心問題。 1、什麽是可變參數?2、斷言的用途?3、什麽時候使用斷言?4、什麽
這幾道Redis面試題都不懂,怎麽拿offer?
sid data 自己 隊列 開始 更新 分布式 參數 惰性 一、緩存雪崩1.1什麽是緩存雪崩?回顧一下我們為什麽要用緩存(Redis):為什麽要緩存 現在有個問題,如果我們的緩存掛掉了,這意味著我們的全部請求都跑去數據庫了。如果緩存掛掉了,全部請求跑去數據庫了 在前面學習
這幾道Redis面試題都不懂,offer肯定與你擦肩而過
今天來分享一下Redis幾道常見的面試題: 如何解決快取雪崩? 如何解決快取穿透? 如何保證快取與資料
熟悉這幾道 Redis 高頻面試題,面試不用愁
1、說說 Redis 都有哪些應用場景? 快取:這應該是 Redis 最主要的功能了,也是大型網站必備機制,合理地使用快取不僅可以加 快資料的訪問速度,而且能夠有效地降低後端資料來源的壓力。 共享Session:對於一些依賴 session 功能的服務來說,如果需要從單機變成叢集的話,可以選擇 redis
js面試題,關於變量提升,作用域,全局變量
fine log js面試 提升 per nbsp lin undefine 變量 /**********seperate line************/ var a = 10; function test() { a = 100; cons