redis 是乙個開源的使用 ansi c 語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value 資料庫。在之前的博文中已經介紹了redis了,大家有需要的可以自行查閱。
在目前的網際網路**中,快取幾乎是**都在用的,合理的使用快取不但可以提公升**訪問速度,還可以大大降低資料庫的壓力。redis不僅提供了鍵過期功能,也提供了靈活的鍵淘汰策略,而且擁有相比memcached更豐富的資料型別。所以,現在redis用在快取的場合非常多。
很多**都有排行榜的展示,如天貓的月度銷量榜單、商品按時間的上新排行榜等。使用redis提供的有序集合資料結構能方便的實現各種複雜的排行榜。
redis列表list結構,lpush可以在列表頭部插入乙個內容id作為關鍵字,ltrim用來修建list以限制list的長度,這樣列表永遠為n個id,無需查詢最新的列表,直接根據id去到對應的內容頁即可。
可以使用redis做session管理,以實現分布式下的session共享。
在很多網際網路公司中都使用了分布式技術,分布式技術帶來的技術挑戰是對同乙個資源的併發訪問,如全域性id、減庫存、秒殺等場景,併發量不大的場景可以使用資料庫的悲觀鎖、樂觀鎖來實現,但在併發量高的場合中,利用資料庫鎖來控制資源的併發訪問是不太理想的,大大影響了資料庫的效能。可以利用redis的setnx功能來編寫分布式的鎖,如果設定返回1說明獲取鎖成功,否則獲取鎖失敗,實際應用中要考慮的細節要更多。
點讚、踩、關注/被關注、共同好友等是社交**的基本功能,社交**的訪問量通常來說比較大,而且傳統的關聯式資料庫型別不適合儲存這種型別的資料,redis提供的雜湊、集合等資料結構能很方便的的實現這些功能。
訊息佇列是大型**必用中介軟體,如rocketmq、rabbitmq、kafka等流行的訊息佇列中介軟體,主要用於業務解耦、流量削峰及非同步處理實時性低的業務。redis提供了發布/訂閱及阻塞佇列功能,能實現乙個簡單的訊息佇列系統。另外,這個不能和專業的訊息中介軟體相比。
Redis常見7種使用場景
1.簡單字串快取實戰 redis connect 127.0.0.1 6379 strcachekey test bihu set 應用 arrcachedata name job 男 age 30 redis set strcachekey,json encode arrcachedata red...
redis使用優化總結學習
在redis的使用中,因為其是單程序在執行,所有在實際使用的過程中因為實際情況可能經常需要進行優化。所以,蒐集了資料學習總結下。1,redis中主要的儲存方式key value模型的儲存方式,在其內部提供了多種的資料型別,可根據實際的情況使用對用的結構型別。目前發現在實際情況,基本上都是用的hash...
Redis學習總結之hashes型別
1.hset 設定hash field為指定值,如果key不存在,則先建立 hset user name name1 2.hsetnx 設定hash field為指定值,如果key不存在,則先建立,如果存在返回0.3.hmset 同時設定hash的多個field hmset user name na...