gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

分享Redis常見面試題

介紹:Redis 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value 數據庫,并提供多種語言的 API的非關系型數據庫。

推薦:《redis教程》

傳統數據庫遵循 ACID 規則。而 Nosql(Not Only SQL 的縮寫,是對不同于傳統的關系型數據庫的數據庫管理系統的統稱) 一般為分布式而分布式一般遵循 CAP 定理。

Github 源碼:https://github.com/antirez/redis

Redis 官網:https://redis.io/

Redis支持的數據類型?

String字符串:

格式: set key value

string類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。

string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。

Hash(哈希)

格式: hmset name key1 value1 key2 value2

Redis hash 是一個鍵值(key=>value)對集合。

Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。

List(列表)

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

格式: lpush name value

在 key 對應 list 的頭部添加字符串元素

格式: rpush name value

在 key 對應 list 的尾部添加字符串元素

格式: lrem name index

key 對應 list 中刪除 count 個和 value 相同的元素

格式: llen name

返回 key 對應 list 的長度

Set(集合)

格式: sadd name value

Redis的Set是string類型的無序集合。

集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。

zset(sorted set:有序集合)

格式: zadd name score value

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

zset的成員是唯一的,但分數(score)卻可以重復。

什么是Redis持久化?Redis有哪幾種持久化方式?優缺點是什么?

持久化就是把內存的數據寫到磁盤中去,防止服務宕機了內存數據丟失。

Redis 提供了兩種持久化方式:RDB(默認) 和AOF

RDB:

rdb是Redis DataBase縮寫

功能核心函數rdbSave(生成RDB文件)和rdbLoad(從文件加載內存)兩個函數

分享Redis常見面試題

AOF:

Aof是Append-only file縮寫

分享Redis常見面試題

每當執行服務器(定時)任務或者函數時flushAppendOnlyFile 函數都會被調用, 這個函數執行以下兩個工作

aof寫入保存:

WRITE:根據條件,將 aof_buf 中的緩存寫入到 AOF 文件

SAVE:根據條件,調用 fsync 或 fdatasync 函數,將 AOF 文件保存到磁盤中。

存儲結構:

內容是redis通訊協議(RESP )格式的命令文本存儲。

比較

1、aof文件比rdb更新頻率高,優先使用aof還原數據。

2、aof比rdb更安全也更大

3、rdb性能比aof好

4、如果兩個都配了優先加載AOF

剛剛上面你有提到redis通訊協議(RESP ),能解釋下什么是RESP?有什么特點?(可以看到很多面試其實都是連環炮,面試官其實在等著你回答到這個點,如果你答上了對你的評價就又加了一分)

RESP 是redis客戶端和服務端之前使用的一種通訊協議;

RESP 的特點:實現簡單、快速解析、可讀性好

For Simple Strings the first byte of the reply is "+" 回復

For Errors the first byte of the reply is "-" 錯誤

For Integers the first byte of the reply is ":" 整數

For Bulk Strings the first byte of the reply is "$" 字符串

For Arrays the first byte of the reply is "*" 數組

Redis 有哪些架構模式?講講各自的特點

單機版

分享Redis常見面試題

特點:簡單

問題:

1、內存容量有限 2、處理能力有限 3、無法高可用。

主從復制

分享Redis常見面試題

Redis 的復制(replication)功能允許用戶根據一個 Redis 服務器來創建任意多個該服務器的復制品,其中被復制的服務器為主服務器(master),而通過復制創建出來的服務器復制品則為從服務器(slave)。 只要主從服務器之間的網絡連接正常,主從服務器兩者會具有相同的數據,主服務器就會一直將發生在自己身上的數據更新同步 給從服務器,從而一直保證主從服務器的數據相同。

特點:

1、master/slave 角色

2、master/slave 數據相同

3、降低 master 讀壓力在轉交從庫

問題:

無法保證高可用

沒有解決 master 寫的壓力

哨兵

分享Redis常見面試題

Redis sentinel 是一個分布式系統中監控 redis 主從服務器,并在主服務器下線時自動進行故障轉移。其中三個特性:

監控(Monitoring): Sentinel 會不斷地檢查你的主服務器和從服務器是否運作正常。

提醒(Notification): 當被監控的某個 Redis 服務器出現問題時, Sentinel 可以通過 API 向管理員或者其他應用程序發送通知。

自動故障遷移(Automatic failover): 當一個主服務器不能正常工作時, Sentinel 會開始一次自動故障遷移操作。

特點:

1、保證高可用

2、監控各個節點

3、自動故障遷移

缺點:主從模式,切換需要時間丟數據

沒有解決 master 寫的壓力

集群(proxy 型):

分享Redis常見面試題

Twemproxy 是一個 Twitter 開源的一個 redis 和 memcache 快速/輕量級代理服務器; Twemproxy 是一個快速的單線程代理程序,支持 Memcached ASCII 協議和 redis 協議。

特點:1、多種 hash 算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins

2、支持失敗節點自動刪除

3、后端 Sharding 分片邏輯對業務透明,業務方的讀寫方式和操作單個 Redis 一致

缺點:增加了新的 proxy,需要維護其高可用。

failover 邏輯需要自己實現,其本身不能支持故障的自動轉移可擴展性差,進行擴縮容都需要手動干預

集群(直連型):

分享Redis常見面試題

從redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用無中心結構,每個節點保存數據和整個集群狀態,每個節點都和其他所有節點連接。

特點:

1、無中心架構(不存在哪個節點影響性能瓶頸),少了 proxy 層。

2、數據按照 slot 存儲分布在多個節點,節點間數據共享,可動態調整數據分布。

3、可擴展性,可線性擴展到 1000 個節點,節點可動態添加或刪除。

4、高可用性,部分節點不可用時,集群仍可用。通過增加 Slave 做備份數據副本

5、實現故障自動 failover,節點之間通過 gossip 協議交換狀態信息,用投票機制完成 Slave到 Master 的角色提升。

缺點:

1、資源隔離性較差,容易出現相互影響的情況。

2、數據通過異步復制,不保證數據的強一致性

什么是一致性哈希算法?什么是哈希槽?

Redis常用命令?

Keys pattern

*表示區配所有

以bit開頭的

查看Exists key是否存在

Set

設置 key 對應的值為 string 類型的 value。

setnx

設置 key 對應的值為 string 類型的 value。如果 key 已經存在,返回 0,nx 是 not exist 的意思。

刪除某個key

第一次返回1 刪除了 第二次返回0

Expire 設置過期時間(單位秒)

TTL查看剩下多少時間

返回負數則key失效,key不存在了

Setex

設置 key 對應的值為 string 類型的 value,并指定此鍵值對應的有效期。

Mset

一次設置多個 key 的值,成功返回 ok 表示所有的值都設置了,失敗返回 0 表示沒有任何值被設置。

Getset

設置 key 的值,并返回 key 的舊值。

Mget

一次獲取多個 key 的值,如果對應 key 不存在,則對應返回 nil。

Incr

對 key 的值做加加操作,并返回新的值。注意 incr 一個不是 int 的 value 會返回錯誤,incr 一個不存在的 key,則設置 key 為 1

incrby

同 incr 類似,加指定值 ,key 不存在時候會設置 key,并認為原來的 value 是 0

Decr

對 key 的值做的是減減操作,decr 一個不存在 key,則設置 key 為-1

Decrby

同 decr,減指定值。

Append

給指定 key 的字符串值追加 value,返回新字符串值的長度。

Strlen

取指定 key 的 value 值的長度。

persist xxx(取消過期時間)

選擇數據庫(0-15庫)

Select 0 //選擇數據庫

move age 1//把age 移動到1庫

Randomkey隨機返回一個key

Rename重命名

Type 返回數據類型

08

使用過Redis分布式鎖么,它是怎么實現的?

先拿setnx來爭搶鎖,搶到之后,再用expire給鎖加一個過期時間防止鎖忘記了釋放。

如果在setnx之后執行expire之前進程意外crash或者要重啟維護了,那會怎么樣?

set指令有非常復雜的參數,這個應該是可以同時把setnx和expire合成一條指令來用的!

09

使用過Redis做異步隊列么,你是怎么用的?有什么缺點?

一般使用list結構作為隊列,rpush生產消息,lpop消費消息。當lpop沒有消息的時候,要適當sleep一會再重試。

缺點:

在消費者下線的情況下,生產的消息會丟失,得使用專業的消息隊列如rabbitmq等。

能不能生產一次消費多次呢?

使用pub/sub主題訂閱者模式,可以實現1:N的消息隊列。

10

什么是緩存穿透?如何避免?什么是緩存雪崩?何如避免?

緩存穿透

一般的緩存系統,都是按照key去緩存查詢,如果不存在對應的value,就應該去后端系統查找(比如DB)。一些惡意的請求會故意查詢不存在的key,請求量很大,就會對后端系統造成很大的壓力。這就叫做緩存穿透。

如何避免?

1:對查詢結果為空的情況也進行緩存,緩存時間設置短一點,或者該key對應的數據insert了之后清理緩存。

2:對一定不存在的key進行過濾。可以把所有的可能存在的key放到一個大的Bitmap中,查詢時通過該bitmap過濾。

緩存雪崩

當緩存服務器重啟或者大量緩存集中在某一個時間段失效,這樣在失效的時候,會給后端系統帶來很大壓力。導致系統崩潰。

如何避免?

1:在緩存失效后,通過加鎖或者隊列來控制讀數據庫寫緩存的線程數量。比如對某個key只允許一個線程查詢數據和寫緩存,其他線程等待。

2:做二級緩存,A1為原始緩存,A2為拷貝緩存,A1失效時,可以訪問A2,A1緩存失效時間設置為短期,A2設置為長期

3:不同的key,設置不同的過期時間,讓緩存失效的時間點盡量均勻。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
а 天堂 在线| 天天夜碰日日摸日日澡性色av| 欧美不卡在线播放| 亚洲熟妇国产熟妇肥婆| 欧美女人性生活视频| 黄色一级在线视频| 国产黄色一级网站| av天堂永久资源网| 日本福利视频导航| 日本精品一区二区三区四区| 麻豆av免费在线| 九九九九九九九九| 成人高清dvd| 99热一区二区| 日韩视频 中文字幕| 国产日韩欧美精品在线观看| 日本中文字幕网址| 又色又爽又高潮免费视频国产| 特级毛片在线免费观看| 久久天天东北熟女毛茸茸| 亚洲视频在线观看一区二区三区| 91免费视频黄| 中国丰满人妻videoshd| 日本特黄a级片| 青青视频在线播放| 日本黄色a视频| 午夜剧场在线免费观看| 成人在线免费高清视频| www.午夜av| 欧美精品色婷婷五月综合| 黄色一级片黄色| 久久撸在线视频| 久久久久久免费看| 亚洲自拍第三页| 黄色片久久久久| 久久久久久久久久久福利| 国产又粗又长又爽又黄的视频| 日韩福利视频在线| 久久99久久久久久| 日韩a一级欧美一级| caoporn超碰97| 国产精品va无码一区二区| 潘金莲一级淫片aaaaa免费看| xx欧美撒尿嘘撒尿xx| 国产日本在线播放| 黄黄视频在线观看| 国产探花在线观看视频| 天天天干夜夜夜操| 久久久性生活视频| 成人午夜视频免费在线观看| 特级西西人体www高清大胆| jizzzz日本| 中文字幕在线导航| 免费黄色福利视频| 91国视频在线| 精品无码国模私拍视频| av一区二区三区免费观看| 视频一区二区视频| 激情五月五月婷婷| 久久免费一级片| 自慰无码一区二区三区| www.日本少妇| 激情五月宗合网| 国产极品尤物在线| 不卡的在线视频| 97av中文字幕| 国产情侣第一页| 亚洲欧洲日产国码无码久久99| 久久精品免费网站| 成人日韩在线视频| 91香蕉视频免费看| 国产青草视频在线观看| 夜夜添无码一区二区三区| 九九爱精品视频| 久久综合久久色| 欧美一级视频在线| 人妻无码一区二区三区四区| 成年人视频网站免费| 日本免费黄视频| 欧美日韩精品区别| 在线视频一二三区| 国产精品50p| 天天综合网日韩| 日韩第一页在线观看| 午夜精品久久久内射近拍高清| 超碰成人在线播放| 992tv快乐视频| 国产超碰在线播放| 日本一道在线观看| 欧美一级黄色片视频| 亚洲五月激情网| 久久九九国产视频| 中文字幕在线中文| 国产又爽又黄ai换脸| ww国产内射精品后入国产| 小泽玛利亚视频在线观看| 美女扒开大腿让男人桶| 精品999在线| 成年人午夜视频在线观看| 亚洲精品视频导航| 日本欧美黄色片| 日日夜夜精品视频免费观看| 色婷婷综合久久久久中文字幕 | 久久福利一区二区| 精品www久久久久奶水| 欧美日韩亚洲国产成人| 中文字幕第21页| 丁香花在线影院观看在线播放| 潘金莲一级淫片aaaaaa播放1| 欧美成年人视频在线观看| 免费国产a级片| 高清无码视频直接看| 亚洲精品mv在线观看| 成人免费毛片播放| 国产极品美女高潮无套久久久| 六月丁香婷婷激情| 国产乱淫av片杨贵妃| 九九九久久久久久久| 久久久精品麻豆| 日韩精品一区二区三区不卡| 亚洲人精品午夜射精日韩 | 午夜探花在线观看| 加勒比av中文字幕| 国产精品久久a| 国产又大又黄又粗又爽| 国产精品入口免费软件| 哪个网站能看毛片| 国产精品久久久久9999小说| 日韩av资源在线| 亚洲国产精品久久久久爰色欲| 无码人妻精品一区二区三区66| 亚洲不卡视频在线| 色综合色综合色综合色综合| 日韩免费高清在线| 2021狠狠干| 国内精品国产三级国产99| 免费的av在线| 波多野结衣综合网| 又色又爽又高潮免费视频国产| 三级视频中文字幕| 亚洲午夜精品一区| 自慰无码一区二区三区| 国产精品欧美激情在线观看| av在线播放亚洲| 91国产精品视频在线观看| 中文字幕在线乱| 久久久久久久片| 日本一二三四区视频| 福利视频免费在线观看| 免费日韩视频在线观看| 国产911在线观看| 免费在线观看亚洲视频| 黄瓜视频免费观看在线观看www| 国产精品一区二区免费在线观看| 鲁一鲁一鲁一鲁一av| 日韩欧美中文在线视频| 欧美日韩精品在线一区二区 | 99热自拍偷拍| 亚洲综合欧美激情| 99久久激情视频| 国产精品jizz在线观看老狼| 青青青免费在线| 午夜免费视频网站| 妺妺窝人体色www在线小说| 天堂av在线网站| 免费国产a级片| 熟女视频一区二区三区| 国产精品久久久久9999小说| 国产奶头好大揉着好爽视频| 日韩av资源在线| 日本黄色三级大片| 好色先生视频污| 911福利视频| 国产精品wwwww| 激情五月亚洲色图| 色欲色香天天天综合网www| 中文字幕视频三区| 97公开免费视频| ww国产内射精品后入国产| 日本一本草久p| 午夜不卡福利视频| 免费一级特黄录像| 免费男同深夜夜行网站| 欧美亚洲精品一区二区| 黄色一级大片免费| 欧美成人三级在线视频| 久久综合色视频| 真人抽搐一进一出视频| 999久久欧美人妻一区二区| 午夜一级免费视频| 青青草原国产免费| 韩国一区二区在线播放| 亚洲精品自拍网| 奇米影视四色在线| 女同激情久久av久久| 狠狠干狠狠操视频| www.偷拍.com| 奇米777四色影视在线看| www黄色日本| 欧美日韩亚洲第一|