欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

關于Redis的問題

關于redis的問題,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務三明,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

昨天寫了一篇自己搭建redis集群并在自己項目中使用的文章,今天早上看別人寫的面經(jīng)發(fā)現(xiàn)redis在面試中還是比較常問的(筆主主Java方向)。所以查閱官方文檔以及他人造好的輪子,總結了一些redis面試和學習中你必須掌握的問題。事無巨細,不可能囊括到所有內(nèi)容,盡量把比較常見的寫出來。

什么是Redis?
Redis 是一個使用 C 語言寫成的,開源的 key-value 數(shù)據(jù)庫。。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現(xiàn)了master-slave(主從)同步。目前,Vmware在資助著redis項目的開發(fā)和維護。

Redis與Memcached的區(qū)別與比較
1 、Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結構的存儲。memcache支持簡單的數(shù)據(jù)類型,String。

2 、Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

3 、Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進行使用,而Memecache把數(shù)據(jù)全部存在內(nèi)存之中

4、 redis的速度比memcached快很多

5、Memcached是多線程,非阻塞IO復用的網(wǎng)絡模型;Redis使用單線程的IO復用模型。

如果想要更詳細了解的話,可以查看慕課網(wǎng)上的這篇手記(非常推薦) :《腳踏兩只船的困惑 - Memcached與Redis》:https://www.imooc.com/article/23549

Redis與Memcached的選擇
終極策略: 使用Redis的String類型做的事,都可以用Memcached替換,以此換取更好的性能提升; 除此以外,優(yōu)先考慮Redis;

使用redis有哪些好處?
(1) 速度快,因為數(shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢就是查找和操作的時間復雜度都是O(1)

(2)支持豐富數(shù)據(jù)類型,支持string,list,set,sorted set,hash

(3) 支持事務,操作都是原子性,所謂的原子性就是對數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行

(4) 豐富的特性:可用于緩存,消息,按key設置過期時間,過期后將會自動刪除

Redis常見數(shù)據(jù)結構使用場景
1. String
常用命令: set,get,decr,incr,mget 等。

String數(shù)據(jù)結構是簡單的key-value類型,value其實不僅可以是String,也可以是數(shù)字。 
常規(guī)key-value緩存應用; 
常規(guī)計數(shù):微博數(shù),粉絲數(shù)等。

2.Hash
常用命令: hget,hset,hgetall 等。

Hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。 比如我們可以Hash數(shù)據(jù)結構來存儲用戶信息,商品信息等等。

舉個例子: 最近做的一個電商網(wǎng)站項目的首頁就使用了redis的hash數(shù)據(jù)結構進行緩存,因為一個網(wǎng)站的首頁訪問量是最大的,所以通常網(wǎng)站的首頁可以通過redis緩存來提高性能和并發(fā)量。我用jedis客戶端來連接和操作我搭建的redis集群或者單機redis,利用jedis可以很容易的對redis進行相關操作,總的來說從搭一個簡單的集群到實現(xiàn)redis作為緩存的整個步驟不難。感興趣的可以看我昨天寫的這篇文章:

《一文輕松搞懂redis集群原理及搭建與使用》: https://juejin.im/post/5ad54d76f265da23970759d3

3.List
常用命令: lpush,rpush,lpop,rpop,lrange等

list就是鏈表,Redis list的應用場景非常多,也是Redis最重要的數(shù)據(jù)結構之一,比如微博的關注列表,粉絲列表,最新消息排行等功能都可以用Redis的list結構來實現(xiàn)。

Redis list的實現(xiàn)為一個雙向鏈表,即可以支持反向查找和遍歷,更方便操作,不過帶來了部分額外的內(nèi)存開銷。

4.Set
常用命令: 
sadd,spop,smembers,sunion 等

set對外提供的功能與list類似是一個列表的功能,特殊之處在于set是可以自動排重的。 
當你需要存儲一個列表數(shù)據(jù),又不希望出現(xiàn)重復數(shù)據(jù)時,set是一個很好的選擇,并且set提供了判斷某個成員是否在一個set集合內(nèi)的重要接口,這個也是list所不能提供的。

在微博應用中,可以將一個用戶所有的關注人存在一個集合中,將其所有粉絲存在一個集合。Redis可以非常方便的實現(xiàn)如共同關注、共同喜好、二度好友等功能。

5.Sorted Set
常用命令: zadd,zrange,zrem,zcard等

和set相比,sorted set增加了一個權重參數(shù)score,使得集合中的元素能夠按score進行有序排列。

舉例: 在直播系統(tǒng)中,實時排行信息包含直播間在線用戶列表,各種禮物排行榜,彈幕消息(可以理解為按消息維度的消息排行榜)等信息,適合使用Redis中的SortedSet結構進行存儲。

MySQL里有2000w數(shù)據(jù),Redis中只存20w的數(shù)據(jù),如何保證Redis中的數(shù)據(jù)都是熱點數(shù)據(jù)(redis有哪些數(shù)據(jù)淘汰策略???)
   相關知識:redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會施行數(shù)據(jù)淘汰策略(回收策略)。redis 提供 6種數(shù)據(jù)淘汰策略: 
1. volatile-lru:從已設置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰 
2. volatile-ttl:從已設置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過期的數(shù)據(jù)淘汰 
3. volatile-random:從已設置過期時間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰 
4. allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰 
5. allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰 
6. no-enviction(驅逐):禁止驅逐數(shù)據(jù)

Redis的并發(fā)競爭問題如何解決?
Redis為單進程單線程模式,采用隊列模式將并發(fā)訪問變?yōu)榇性L問。Redis本身沒有鎖的概念,Redis對于多個客戶端連接并不存在競爭,但是在Jedis客戶端對Redis進行并發(fā)訪問時會發(fā)生連接超時、數(shù)據(jù)轉換錯誤、阻塞、客戶端關閉連接等問題,這些問題均是由于客戶端連接混亂造成。對此有2種解決方法:

1.客戶端角度,為保證每個客戶端間正常有序與Redis進行通信,對連接進行池化,同時對客戶端讀寫Redis操作采用內(nèi)部鎖synchronized。 
  
2.服務器角度,利用setnx實現(xiàn)鎖。

注:對于第一種,需要應用程序自己處理資源的同步,可以使用的方法比較通俗,可以使用synchronized也可以使用lock;第二種需要用到Redis的setnx命令,但是需要注意一些問題。

Redis回收進程如何工作的? Redis回收使用的是什么算法?
Redis內(nèi)存回收:LRU算法(寫的很不錯,推薦):https://www.cnblogs.com/WJ5888/p/4371647.html

Redis 大量數(shù)據(jù)插入
官方文檔給的解釋:http://www.redis.cn/topics/mass-insert.html

Redis 分區(qū)的優(yōu)勢、不足以及分區(qū)類型
官方文檔提供的講解:http://www.redis.net.cn/tutorial/3524.html

Redis持久化數(shù)據(jù)和緩存怎么做擴容?
《redis的持久化和緩存機制》 :https://blog.csdn.net/tr1912/article/details/70197085?foxhandler=RssReadRenderProcessHandler

擴容的話可以通過redis集群實現(xiàn),之前做項目的時候用過自己搭的redis集群 
然后寫了一篇關于redis集群的文章:《一文輕松搞懂redis集群原理及搭建與使用》:https://juejin.im/post/5ad54d76f265da23970759d3

Redis常見性能問題和解決方案:
Master最好不要做任何持久化工作,如RDB內(nèi)存快照和AOF日志文件
如果數(shù)據(jù)比較重要,某個Slave開啟AOF備份數(shù)據(jù),策略設置為每秒同步一次
為了主從復制的速度和連接的穩(wěn)定性,Master和Slave最好在同一個局域網(wǎng)內(nèi)
盡量避免在壓力很大的主庫上增加從庫
Redis與消息隊列
作者:翁偉 
鏈接:https://www.zhihu.com/question/20795043/answer/345073457

不要使用redis去做消息隊列,這不是redis的設計目標。但實在太多人使用redis去做去消息隊列,redis的作者看不下去,另外基于redis的核心代碼,另外實現(xiàn)了一個消息隊列disque: antirez/disque:https://github.com/antirez/disque部署、協(xié)議等方面都跟redis非常類似,并且支持集群,延遲消息等等。

我在做網(wǎng)站過程接觸比較多的還是使用redis做緩存,比如秒殺系統(tǒng),首頁緩存等等。

好文Mark
非常非常推薦下面幾篇文章。。。

《Redis深入之道:原理解析、場景使用以及視頻解讀》:https://zhuanlan.zhihu.com/p/28073983: 
主要介紹了:Redis集群開源的方案、Redis協(xié)議簡介及持久化Aof文件解析、Redis短連接性能優(yōu)化等等內(nèi)容,文章干貨太大,容量很大,建議時間充??梢钥纯?。另外文章里面還提供了視頻講解,可以說是非常非常用心了。

《阿里云Redis混合存儲典型場景:如何輕松搭建視頻直播間系統(tǒng)》:https://yq.aliyun.com/articles/582487?utm_content=m_46529: 
主要介紹視頻直播間系統(tǒng),以及如何使用阿里云Redis混合存儲實例方便快捷的構建大數(shù)據(jù)量,低延遲的視頻直播間服務。還介紹到了我們之前提高過的redis的數(shù)據(jù)結構的使用場景

《美團在Redis上踩過的一些坑-5.redis cluster遇到的一些問》:http://carlosfu.iteye.com/blog/2254573:主要介紹了redis集群的兩個常見問題,然后分享了 一些關于redis集群不錯的文章。

看完上述內(nèi)容,你們掌握關于Redis的問題的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

標題名稱:關于Redis的問題
路徑分享:http://aaarwkj.com/article12/ihhjdc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設軟件開發(fā)、網(wǎng)站收錄動態(tài)網(wǎng)站、微信小程序App設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
亚洲国际精品女人乱码| 欧美日韩国产精品乱人伦| 有码精品视频在线观看| 欧美成人日本在线播放| 东京一区二区三区四区黄片| 国产精品国产三级国产普通话99 | 国产做a爰片久久91| 在线视频网友自拍偷拍| 欧美亚洲av一区二区三区| 少妇高潮试看二十分钟| 国产精品久久99粉嫩| av在线免费观看青青草原| 亚洲黄色av在线免费观看| 久草免费福利视频资源站| 一级丰满少妇av大片| 粉嫩av一男战三女高潮| 欧美日韩精品人妻一区| 日本一级a级黄免视频| 国产成人精品一区二区国产乱码| 国产亚洲精品一区久久| 人妻大乳一区二区三区| 亚洲精品中的亚洲精品| 亚洲不卡在线视频免费| 天天操夜夜夜夜夜操| 特黄日韩免费一区二区三区| 日本不卡一区二区三区四| 日本高清一区二区网站| av在线观看亚洲天堂| 97国产超碰在线观看| 亚洲天堂毛片在线观看| 视频在线观看亚洲午夜福利| 欧美日韩在线观看黄色| 国产精品国产成人生活片| 黄片视频免费在线观看播放| 四虎永久精品在线视频| 日韩欧美啪啪一区二区| 亚洲综合av伊人久久| 好看毛片一区二区三区四区| 日本女人体内射精视频| 十八禁在线观看国产一区| 亚洲久久精品一区二区|