1. 程式人生 > >收集的一些Redis面試題,歡迎挑戰

收集的一些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