閱讀更多

11頂
0踩

研發管理

轉載新聞 Redis 在現實世界的 5 個用法

2018-04-11 11:19 by 副主編 jihong10102006 評論(3) 有42116人瀏覽
Redis是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人經常認為它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面我將會總結一些Redis可以做的事情的真實例子。

1.全頁面緩存

首先是整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如Redis這樣的緩存,你可以緩存經常請求的內容,從而大大減少請求最多的頁面的延遲,并且大多數框架針對Redis緩存頁面都有hooks。
簡單命令
/ Set the page that will last 1 minuteSET key "<html>...</html>" EX 60// Get the pageGET key

2.排行榜

Redis令人耀眼的地方之一就是排行榜。由于Redis在內存中,因此可以非常快速和高效地處理遞增和遞減。將此與每個請求運行SQL查詢比較,性能收益巨大!這與Redis的排序集相結合意味著你可以以毫秒為單位抓取列表中評分最高的項目,而且實現起來非常容易。
簡單命令
// Add an item to the sorted setZADD sortedSet 1 "one"http:// Get all items from the sorted setZRANGE sortedSet 0 -1// Get all items from the sorted set with their score
ZRANGE sortedSet 0 -1 WITHSCORES

3.會話Session存儲

我所見的Redis最常見的用途是會話存儲。與其他會話存儲(如Memcache)不同,Redis可以保留數據,以便在緩存停止的情況下,在重新啟動時,所有數據仍然存在。即便不是需要嚴格持續的任務,此功能仍可以為你的用戶省去大量的麻煩。沒有人會樂于見到他們的會話被無緣無故隨機刪掉。
簡單命令
// Set session that will last 1 minuteSET randomHash "{userId}" EX 60// Get userIdGET randomHash

4.隊列

使用Redis可以做的一個不太常見,但非常有用的事情是排隊。無論是電子郵件隊列還是其他應用程序使用的數據,你都可以在Redis中創建一個高效的隊列。任何熟悉堆棧以及會push和pop項目的開發人員都可以輕松自然地使用此功能。
簡單命令
// Add a Message
HSET messages <id> <message>ZADD due <due_timestamp> <id>// Recieving Message
ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1
HGET messages <message_id>// Delete  Message
ZREM due <message_id>HDEL messages <message_id>

5.pub/sub

Redis在真實世界的最終用法即我將在這篇文章中提出的pub / sub。這是Redis內置的最強大的功能之一;得到的可能是無限的。你可以創建一個實時聊天系統,在社交網絡上觸發好友請求的通知等等。這個功能是Redis提供的最被低估的功能之一,但功能非常強大,而且使用簡單。
簡單命令
// Add a message to a channelPUBLISH channel message// Recieve messages from a channelSUBSCRIBE channel

結論

我希望你會喜歡這些Redis在真實世界的使用。雖然這篇文章只抓住了Redis能為你做的事情的表面,但是我希望你能從中獲得應如何充分利用Redis的啟發。
  • 大小: 14.4 KB
來自: 代碼技巧
11
0
評論 共 3 條 請登錄后發表評論
3 樓 hongyabing 2018-05-02 15:25
2 樓 andy54321 2018-04-13 14:48
redis很強大。
尤其是結合 redis sentinel 和 3.x后支持 的 redis cluster。
1 樓 masuweng 2018-04-12 15:03
  

發表評論

您還沒有登錄,請您登錄后再發表評論

相關推薦

  • Redis現實世界的 5 個用法(轉)

    Redis是一個強大的內存數據結構存儲,包含數據庫,緩存和消息代理等多種用途。大多數人經常認為它不過是一個簡單的鍵值存儲,但其實它有更多的能力。下面我將會總結一些Redis可以做的事情的真實例子。? 1.全頁面緩存?首先是整頁緩存。如果你正在使用服務器端呈現的內容,則不需要為每個單獨的請求重新渲染每個頁面。使用如Redis這樣的緩存,你可以緩存經常請求的內容,從而大大減少請求最多的頁面的延...

  • 數據模型——從現實世界到信息世界——再到物理世界(設計數據庫的整體思路)

    數據模型是對現實世界數據特征的抽象,說白了就是數據模型是用來描述數據、組織數據、操作數據的。 數據庫模型是數據庫系統的核心和基礎。數據模型分類兩類:①概念模型 也稱之為信息模型,它是站在用戶的角度來對數據和信息建模的,主要用于數據庫設計。 ②邏輯模型和物理模型 邏輯模型主要包括層次模型、網狀模型、關系模型、等。而物理模型是對數據最頂層的抽象。 為了把現實世界中的具體事務抽象、組織為某一數

  • 現實世界與虛擬世界的差別在哪里

    現實世界與虛擬世界的差別在哪里     紅朝儒生 2014-7-15   關鍵字:現實世界 虛擬世界 信息 無限 有限 簡介:現實世界,與虛擬世界的真正差異,在于現實世界的信息量是無限的。更根本的差異,在于現實世界可以把無限化于有限。       最近看一個動畫片,關于電腦游戲方面的。其中有一人問:現實世界與虛擬世界的差別在哪里?吾聽了一愣,嗯?這個問題問得有意思。如果虛擬世界...

  • 再來給世界建模

  • 現實世界到抽象世界

    當我們拿起一個蘋果的時候,在我們內心中,會將這個物體抽象為:蘋果,它具有圓圓的,帶些紅色的外表,可以吃,可以解渴等等。我們所認識的可以用來描述蘋果的詞匯,都是我們抽象出的概念。進一步可以說,我們所看到的,所聽到的,所觸到的,所嗅到的,所嘗到的,范次種種都是我們抽象的概念。 人工智能是存在于抽象世界里,人類的智能就是建立在抽象世界上的,所以我們需要將現實世界轉化為一個抽象世界。 我們抽象出了距離

  • 對象——從現實世界的抽象(*)

    關鍵詞: ? 對象 ? ?抽象 ? ?狀態 ? ?映射 ? ?靜態 對象和類 對象一詞,我們可能會聯想到一個物體。比如一支筆,一本書,等等。他們都可以稱為對象。對象其實就是現實生活中常見的事物,每個事物都可以叫做對象。反過來講,嚴格的說對象不能簡單的叫做事物,它是對事物的統稱。這是廣義的對象。 在現實世界中,在我們人類的視角下,會對各種事物進行一個分類,比如動

  • 編程是現實世界的抽象

    在我們的現實世界中,復雜而繁蕪。然而,總會有聰明的人將現實世界具有相同特性的特征進行一定程度的抽象總結。這種抽象后的一種理解,能夠被運用到各個方面。機器作為人類各種活動的放大器,能夠更加方便或者高效的幫助我們完成一定的工作,特別是計算機的出現和快速發展,使人類的計算效率放大了無數倍。隨著計算機的產生,編程也應運而生。編程作為一種規范和指引計算機行為的一種語言,能夠讓計算機按照我們的意愿去完成相應的...

  • https://blog.csdn.net/mjianglei/article/details/52329719

  • 虛擬世界可以融入現實世界,但不能取代現實世界

    今天看到了美國MIT Media Lab(麻省理工學院媒體實驗室)的天才學生普拉納夫- (Prarnav Mistry),發明了一項結合實體世界和虛擬世界的科技。 [url]http://www.letsoul.cn/news/12856-Sixth-Sense[/url] 真的很棒,我想未來的趨勢就應該這樣,也許還可以更先進,通過虛擬世界現實世界的結合是多么的和諧啊。 《未來戰...

  • 黑客帝國里的真實世界

    人類的科技文明發展到某一天,機器的人工智能已經開始超越了人所能控制的范圍。于是,機器開始了挑戰人類的戰爭,結果,機器打勝了。地球上的人類分成了兩部分,一部分是被驅逐到地心深處一個名叫錫安(Zion)的溶洞中的地球原著民,他們繼續在跟機器進行著戰斗,試圖摧毀機器世界,重新獲得地球的主宰權;另一部分則是機器的戰利品,他們一生下來就被養在機器制造的試管中,也會生長發育,只是他們并不知道過去曾經發生的一切

  • 信息是現實世界中各種事物的存在方式、運動形態以及它們之間的相互聯系等諸要素在人腦中的反映,通過人腦的抽象后形成概念。

    1.1.1 信息與數據 1.信息 信息是現實世界中各種事物的存在方式、運動形態以及它們之間的相互聯系等諸要素在人腦中的反映,通過人腦的抽象后形成概念。 2.數據 數據一般是指信息的一種符號化表示方法,就是說用一定的符號表示信息,而采用什么符號,完全是人為規定。所以數據的概念包括兩個方面含義:一是數據的內容是信息,二是數據的表現形式是符號。

  • 游戲改變世界:游戲化如何讓現實變得更美好

  • 0001從現實對象到數學模型

  • 《增強現實:融合現實與虛擬世界

    空間增強現實:融合現實和虛擬世界 2016年2月18日 ? ? ?上海普陀區 翻譯:Taylor Guo 目錄 1?????增強現實簡介... 5 1.1??????什么是增強現實?... 5 1.2???????目前的挑戰... 5 1.3??????空間增

  • 信息的三種世界

    第三講 信息的三種世界 教師課件搬運,非原創,今后也要好好加油~

  • 預見未來 | 計算機圖形學:虛擬和現實世界的融合

  • 如果說這個世界不是真實存在的,只是一段代碼,迄今為止你發現了哪些bug?

    知乎上有一個這樣的帖子,回答都蠻精彩的,不過有一個特別精彩,不明覺厲的趕腳! http://www.zhihu.com/question/20198823 摘貼如下: 劉斯翔,教法語的計算機專業畢業生,懂浪漫 張浩然、Si LA、凌小晨?等人贊同 給這個世界寫代碼的不是一個人,而是一個團隊(這么大的項目,一個人開發不了)。而且嚴重懷疑這個一個開源項目。

  • https://blog.csdn.net/lillllllll/article/details/4193369

  • IBM分析大數據在現實世界中的應用

  • 一次分不清現實還是夢境的夢

    做夢有時候會有種分不清夢境還是現實的感覺,在夢中有愉快的冒險旅程,有喜歡的人,夢中的嬉戲打鬧,以及之后的和壞人的戰斗,自己可以飛天遁地。可我在夢中始終覺得真實的自己就是這樣的,我要趕緊醒來去救我喜歡的人,一直搞不清楚自己是在做夢還是現實,以為中了壞人的幻術。? 一番掙扎,真的醒來了,20秒鐘左右,慢慢清醒,emmm...真實的生活沒那么刺激,我也沒有那么厲...

Global site tag (gtag.js) - Google Analytics 全天上海快3计划网 隆尧县| 银川市| 扬州市| 上思县| 米泉市| 林西县| 涞源县| 晋城| 桃园市| 慈利县| 中超| 稻城县| 平江县| 彭山县| 洛扎县| 肇州县| 义马市| 抚宁县| 侯马市| 当阳市| 三门县| 永济市| 拉萨市| 衡阳县| 玉溪市| 蓬溪县| 龙门县| 营山县| 汕尾市| 秀山| 壶关县| 确山县| 临泉县| 安多县| 灌阳县| 晋中市| 台南县| 武胜县|