redis在專案中是如何應用的?
阿新 • • 發佈:2018-12-13
redis是單程序單執行緒的模式,序列執行命令,但是因為其在記憶體中執行的,所以序列和並行的速度差不多。
在專案中可以用做什麼?
1.快取
2.nosql資料庫
3.使用者登入session
4.日誌系統
5.訊息佇列
redis的特點:
支援事務,操作都是原子性的,單個value最大為1G。
Master-slave下,Master不要持久化,將持久化的工作交給slave,因為持久化(AOF)的時候,服務會有短暫的暫停。
問:如果持久化的時候,突然宕機,部分資料會丟失,怎麼辦?
答:這是後會有一個redis-check-aof的工具,它可以定位資料不一致的錯誤,並將寫入的資料回滾。
問:如果資料庫有2000萬資料,redis只能儲存20萬,如何保證這20萬資料都是熱點資料?
答:因為當資料超過一定限制,redis自己有六種資料淘汰策略。
注:
redis的資料回收策略規則(根據訪問頻率)
1.如果資料的分佈是冪率分佈,用lru策略
2.如果資料的分佈是平等分佈,用random策略
為保證每個客戶端都能夠有序的訪問redis,伺服器角度可以用分散式鎖,如果是單機的話,也可以直接用sychonized。