前言
經過長達一周的奔波和面試,電話面試,回首今天終于成功的入職了,總共面試了大概10家公司,包括阿里,京東,IBM等等,京東技術過了,學歷因為非統招就被pass了,阿里面了2次電話面試就沒下文了,估計是我當時最后提問題的時候減分了吧,其他的也有一些offer,不是不想去,就是了無音訊了,眼看年關將近,也由不得我挑挑揀揀了,就直接進了我現在這家公司,主要是感覺公司人不錯,薪水這方面也就沒有計較太多。好了,書歸正文,今天小編就大家送上我精心準備的關于Redis方面的面試題,希望可以幫到還在求職路上的你們。
1.什么是redis?
Redis 是一個基于內存的高性能key-value數據庫。
2.Reids的特點
Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內存當中進行操作,定期通過異步操作把數據庫數據flush到硬盤上進行保存。因為是純內存操作,Redis的性能非常出色,每秒可以處理超過 10萬次讀寫操作,是已知性
能最快的Key-Value DB。
Redis的出色之處不僅僅是性能,Redis最大的魅力是支持保存多種數據結構,此外單個value的最大限制是1GB,不像 memcached只能保存1MB的數據,因此Redis可以用來實現很多有用的功能,比方說用他的List來做FIFO雙向鏈表,實現一個輕量級的高性 能消
息隊列服務,用他的Set可以做高性能的tag系統等等。另外Redis也可以對存入的Key-Value設置expire時間,因此也可以被當作一 個功能加強版的memcached來用。
Redis的主要缺點是數據庫容量受到物理內存的限制,不能用作海量數據的高性能讀寫,因此Redis適合的場景主要局限在較小數據量的高性能操作和運算上。
3.使用redis有哪些好處?
(1) 速度快,因為數據存在內存中,類似于HashMap,HashMap的優勢就是查找和操作的時間復雜度都是O(1)
(2) 支持豐富數據類型,支持string,list,set,sorted set,hash
(3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行
(4) 豐富的特性:可用于緩存,消息,按key設置過期時間,過期后將會自動刪除
4.使用redis有什么缺點
分析:大家用redis這么久,這個問題是必須要了解的,基本上使用redis都會碰到一些問題,常見的也就幾個。
回答:主要是四個問題
(一)緩存和數據庫雙寫一致性問題
(二)緩存雪崩問題
(三)緩存擊穿問題
(四)緩存的并發競爭問題
這四個問題,我個人是覺得在項目中,比較常遇見的。
5.redis相比memcached有哪些優勢?
(1) memcached所有的值均是簡單的字符串,redis作為其替代者,支持更為豐富的數據類型
(2) redis的速度比memcached快很多 (3) redis可以持久化其數據
6.Memcache與Redis的區別都有哪些?
1)、存儲方式 Memecache把數據全部存在內存之中,斷電后會掛掉,數據不能超過內存大小。 Redis有部份存在硬盤上,這樣能保證數據的持久性。
2)、數據支持類型 Memcache對數據類型支持相對簡單。 Redis有復雜的數據類型。
3)、使用底層模型不同 它們之間底層實現方式 以及與客戶端之間通信的應用協議不一樣。 Redis直接自己構建了VM 機制 ,因為一般的系統調用系統函數的話,會浪費一定的時間去移動和請求。
7.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最好在同一個局域網內
8. mySQL里有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據
相關知識:redis 內存數據集大小上升到一定大小的時候,就會施行數據淘汰策略(回收策略)。redis 提供 6種數據淘汰策略:
9.請用Redis和任意語言實現一段惡意登錄保護的代碼,限制1小時內每用戶Id最多只能登錄5次。具體登錄函數或功能用空函數即可,不用詳細寫出。
用列表實現:列表中每個元素代表登陸時間,只要最后的第5次登陸時間和現在時間差不超過1小時就禁止登陸.用Python寫的代碼如下:
#!/usr/bin/env python3import 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() 主站蜘蛛池模板: 一区二区久久久久草草 | 久草在线视频免费播放 | 精品xxxx户外露出视频 | 久久千人斩 | 十级毛片 | 福利免费在线观看 | 久草在线视频福利 | 亚洲成人国产综合 | 动漫孕妇被羞羞视频 | 久久国产精品久久久久久 | 久久色伦理资源站 | 久久精品黄 | 国内精品一级毛片免费看 | 爱高潮www亚洲精品 国产精品一区自拍 | 成人毛片免费 | 欧美亚洲国产日韩 | 国产一级毛片国产 | 新久草在线视频 | 91久久久久| 羞羞答答www网站进入 | 久久精品国产清自在天天线 | 欧美日韩免费一区二区三区 | 成人在线观看免费高清 | 亚洲小视频在线 | 午夜色片 | 欧美日韩高清不卡 | 一级α片免费看刺激高潮视频 | 亚洲人成电影在线 | 小视频成人 | 亚洲天堂成人在线 | 亚洲精品成人久久久 | 91久久精品一区二区 | 激情综合网俺也去 | 久久国产精品免费视频 | 国产精品99久久免费观看 | 久久福利国产 | 福利在线影院 | 日韩电影一区二区 | 久久久婷婷一区二区三区不卡 | 九色国产| 日本中文字幕电影在线观看 |