redis搬運整理參考:
《Redis 列表》
《Redis使用場景》、《Redis的使用場景》php
消息隊列的使用 RabbitMQ
更專業。
【哈希hash至關因而簡化版的有序集合(sorted set)
】
redis支持集羣水平擴展,支持持久化,在高發、邏輯簡單、非核心的功能上能夠替代MySQL。html
對於高併發的數據查詢服務,能夠將經常使用查詢結果放到redis:[ key => value ]、設爲優先使用。注意設置合理的鍵名。mysql
php自動管理。web
每分鐘/30s發送最多一條驗證短信,限制經過速率。redis
對於與評論等相對不重要的熱數據,能夠所有放到redis中,好比像IT之家主要看評論的這種。sql
hash
中的 field 自增。使用:有序集合(sorted set)。ZREVRANGEBYSCORE 返回有序集中指定分數區間內的全部的成員。緩存
使用:集合(Set)。對於一個用戶A,將它的關注和粉絲的用戶id都存放到兩個set中:session
假設一個城市北京,經過拼音詞庫將北京轉爲beijing,再經過前綴分詞將這兩個詞分爲若干個前綴索引,有:北、北京、b、be…beijin和beijing。將這些索引分別做爲set的 key(例如:index:北)並存儲北京的 id,倒排索引便創建好了。接下來只須要在搜索時經過關鍵詞取出對應的set並獲得其中的 id 便可。併發
初始化,添加秒殺商品rpush ==> 分佈式消費,消費鎖lpop
...異步
RabbitMQ能夠搭建集羣,用於任務的異步處理。相比Redis,RabbitMQ實現了AMQP協議,隊列可靠性更高,多了各端中階段的ack驗證,性能差些。
《RabbitMQ與Redis隊列對比》
把執行任務保存爲執行單元、延時處理,發佈、訂閱處理任務。秒殺
時能夠串行執行,應用解耦
時異步延時處理,普通隊列
任務並行執行。
適合運行在命令行的web後臺環境使用。
《API設計風格(RRC、REST、GraphQL、服務端驅動)》
面向資源
面向結果數據
面向過程