您好,登錄后才能下訂單哦!
本篇內容介紹了“使用Redis能解決什么問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
有memcached使用經驗的人可能知道,用戶只能用APPEND命令將數據添加到已有字符串的末尾。memcached的文檔中聲明,可以用APPEND命令來管理元素列表。這很好!用戶可以將元素追加到一個字符串的末尾,并將那個字符串當作列表來使用。但隨后如何刪除這些元素呢?memcached采用的辦法是通過黑名單(blacklist)來隱藏列表里面的元素,從而避免對元素執行讀取、更新、寫入(包括在一次數據庫查詢之后執行的memcached寫入)等操作。相反地,Redis的LIST和SET允許用戶直接添加或者刪除元素。
使用Redis而不是memcached來解決問題,不僅可以讓代碼變得更簡短、更易懂、更易維護,而且還可以使代碼的運行速度更快(因為用戶不需要通過讀取數據庫來更新數據)。除此之外,在其他許多情況下,Redis的效率和易用性也比關系數據庫要好得多。
數據庫的一個常見用法是存儲長期的報告數據,并將這些報告數據用作固定時間范圍內的聚合數據(aggregates)。收集聚合數據的常見做法是:先將各個行插入一個報告表里面,之后再通過掃描這些行來收集聚合數據,并根據收集到的聚合數據來更新聚合表中已有的那些行。之所以使用插入行的方式來存儲,是因為對于大部分數據庫來說,插入行操作的執行速度非常快(插入行只會在硬盤文件末尾進行寫入)。不過,對表里面的行進行更新卻是一個速度相當慢的操作,因為這種更新除了會引起一次隨機讀(random read)之外,還可能會引起一次隨機寫(random write)。而在Redis里面,用戶可以直接使用原子的(atomic)INCR命令及其變種來計算聚合數據,并且因為Redis將數據存儲在內存里面2,而且發送給Redis的命令請求并不需要經過典型的查詢分析器(parser)或者查詢優化器(optimizer)進行處理,所以對Redis存儲的數據執行隨機寫的速度總是非常迅速的。
使用 Redis 而不是關系數據庫或者其他硬盤存儲數據庫,可以避免寫入不必要的臨時數據,也免去了對臨時數據進行掃描或者刪除的麻煩,并最終改善程序的性能。雖然上面列舉的都是一些簡單的例子,但它們很好地證明了“工具會極大地改變人們解決問題的方式”這一點。
除了第6章提到的任務隊列(task queue)之外,本書的大部分內容都致力于實時地解決問題。本書通過展示各種技術并提供可工作的代碼來幫助讀者消滅瓶頸、簡化代碼、收集數據、分發(distribute)數據、構建實用程序(utility),并最終幫助讀者更輕松地完成構建軟件的任務。只要正確地使用書中介紹的技術,讀者的軟件就可以擴展至令那些所謂的“Web擴展技術(web-sacle technology)”相形見絀的地步。
“使用Redis能解決什么問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。