1.redis支援5種資料結構
1)string
2)hash
可以作為單點登入,把cookieid儲存起來,設定過期時間
3)set
set本身無序的,可以作為全域性去重功能,jvm的set也是無序不重複的,如果是集群的話就起不到這個作用,所以redis可以很好解決
4)sortedset
有序集合,可以完成排名榜的功能,如果用mysql建立索引查詢,速度會比較慢
5)list
2.redis優點
1)redis是單執行緒工作模型,避免了頻繁的上下文切換
2)純記憶體操作
3)採用無堵塞io多路復用機制(乙個執行緒,記錄多個io狀態,來管理多個io流)
3.redis缺點
1)快取擊穿,雪崩
2)快取高併發競爭問題
3)快取和資料庫一致性問題
解決方案:
快取擊穿,雪崩都是快取失效,直接懟上資料庫,造成資料庫連線失敗
所以:可以讓他們搶分布式鎖,搶到了再查詢資料庫
或者是讓資料失效的時間+隨機數,不至於同乙個時間集體失效
快取和資料庫一致性問題
採用先刪快取,再更新資料庫做法。為啥不更新快取,再更新資料庫呢?由於網路延遲,高併發,要保持快取和資料庫強一致性是比較難的,如果資料要求強一致性,建議不要使用快取。只能保證最後快取和資料庫最終一致性。
還有乙個是這個方案可以產生的讀到髒資料的情況:
a刪快取,
b發現沒有快取,去資料庫讀取舊資料,
a更新資料庫,
b更新快取。
so快取一直是舊資料。
解決方案是:在a寫入資料庫之後隔著乙個時間(如1秒)刪除快取,即刪除髒資料。
4.redis key失效策略
採用定期刪除和惰性刪除
Spring對Redis的支援
引入 redistemplate物件預設序列化方式為byte陣列,封裝好的方法不用我們去序列化,直接使用即可。概述 redistemplate是sprig提供的redis資料庫訪問物件。可對redis資料庫操作。由來 redis資料庫是可基於記憶體儲存的,效率高。訪問量較高的資料不能頻繁的對資料庫進...
PHP擴充套件支援Redis
wget 2.解壓 並進入目錄 3.在此目錄下執行 注意 一定要在此目錄下執行 其中 usr local php bin phpize usr local php 是你的 php安裝路徑 4.執行配置檔案 configure with php config usr local php bin php...
lnmp配置支援redis
第二步 按照命令列,一步一步執行就可以了。root localhost wget root localhost tar xzf 2.2.8.tar.gz 進入phpredis的擴充套件 root localhost cd phpredis 2.2.8 檢視phpredis擴充套件 的目錄在 root...