天天看點

【七天玩轉Redis實戰營】答疑彙總Day2 Redis開發實操之春運遷徙頁面

【第二講,Redis開發實操之春運遷徙頁面】

講師:阿裡雲NoSQL核心工程師;Redis Committer,Jedis Reviewer,凡澈

課程内容:如何使用Redis:一般性Redis啟動到連接配接;雲redis從開通到連接配接(建立,白名單,用戶端連接配接);使用Redis Hash,Sorted Set,Stream等結構實作一個春運遷徙頁面

答疑彙總:特感謝班委@邱謙 同學

【七天玩轉Redis實戰營】答疑彙總Day2 Redis開發實操之春運遷徙頁面

Q1. Tarigis是什麼資料結構?是阿裡雲開發的嗎?

Redis企業版的Module支援的功能,底層是基于stream,可以做更多點、線、面之間的判斷關系。在今天的例子中,判斷路徑有沒有經過疫區就是通過線面之間有沒有相交。TairGIS的詳細介紹,可看這裡

https://help.aliyun.com/document_detail/145971.html

。Tarigis是由阿裡雲開發的。

Q2. RedisTemplate擷取了哈希資料後,key在Redis中不存在,但是擷取到的對象是空對象是怎麼回事?

RedisTemplate使用過程中,要注意關于對象的序列化和反序列化的設定。

Q3.Tarigis的開源版是如何實作的?

Redis本身的GEO的實作。使用GEO HASH的原理,對各個地區的經緯度做了不斷區分。Tarigis和RedisGEO不一樣的是底層的資料結構是R tree,可以對它做索引,也可以做點線面相交的判斷。

Q4.點面關系和線面關系之間的線面複雜度如何?

複雜度分為最好和最壞。R tree的複雜度,要考慮整個R tree上節點的次元,以及每個面的次元。

Q5.雲資料庫添加不同權限的功能是Redis原生的功能還是阿裡雲開發的?

雲上的賬戶體系是由阿裡雲進行的二次開發。

Q6.一次要擷取上百個key,累積起來耗時比較長,有沒有什麼更好的方案?

key不多的話,問題也不大。一次業務請求中key比較多的時候,建議把key分在不同的機器上,這樣可以整體減少傳回的時間,因為可以并發地執行。我們在後面的課程中也會提到如何優化key地設計。

Q7. Redis5.0的社群版支援Tarigis的功能嗎?

不支援。支援企業版資料結構的Redis隻有企業版Redis。

Q8.Password預設的使用者名是什麼?

預設的使用者名是使用者的執行個體ID。

Q9.雲Redis和伺服器自己安裝的的Redis有什麼差別?

Redis本身在運維方面由比較多問題與坑,對于整個資源和管理,雲Redis在安全和彈性上都有更大的優勢。在阿裡雲Redis的官方文檔上也有雲Redis和伺服器安裝的Redis由詳細的比較。

Q10.Redis緩存的資料在開啟AOF後,最多丢失1秒鐘?事實上也是這樣嗎?

Redis在AOF的配置政策。最極端情況下可以配置每次重新整理,大多數時候都是配置1秒重新整理一次。1秒重新整理是調用fsync,資料會經過一系列流程處理和配置。配置everysec政策,按照官方文檔的描述,最多丢失1秒的資料。

但實際上如果發生AOF加塞,修改指令添加到aof_buf之後,如果配置是everysec那麼會每秒執行fsync操作,調用write寫入磁盤一次。如果硬碟負載過高,fsync操作可能會超過1s,此時Redis會采取延遲fsync的政策,将會再等待1秒,也就是2秒後再進行fsync,這一次的fync不管執行多長時間都會進行。主線程阻塞直到fsync同步完成,是以最多可能丢失2s的資料,而不是1s。

Q11.雲上的Redis是不是有大key監控?

有,雲上Redis可以通過緩存分析來分析key,還有大key監控功能正在開發,後續會盡快上線。