[redis資料庫問題] 聊聊你對redis的理解
從Redis的特性來說:
① redis資料庫是一種非關係型資料庫,資料以key-value的形式儲存,
②它是記憶體型資料庫,資料儲存在記憶體中,所以讀寫速度很快。
③當然它也支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用,以保證資料的安全。
④ Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
⑤而且Redis的所有操作都是原子性的,同時Redis還支援對幾個操作全並後的原子性執行
我們以前的做專案中也廣泛的應用到了redis資料庫。
比方說我們之前做的一個電商專案,是一個
①這個專案採用的是郵件啟用的方式,所以就用了celery非同步伺服器來完成非同步傳送郵件完成啟用。我們在celery非同步伺服器就是用選用了Redis資料庫來做broker做任務儲存。
②我們這個專案的session資訊和快取資料也是放在Redis資料庫中。因為我們資料庫用的MySQL,所以session資訊預設是放在MySQL中的,但每次訪問網頁都要去查MySQL,效率太低,所以我們就把session資訊放在Redis資料庫中。同樣的我們未登入使用者用ngnix來給他靜態頁面,登入使用者我們給他的是快取頁面,我們這個快取就是存在
③購物車資料是需要有即時性的,所以不能放在快取裡,使用者未登入時我們放在cookie中,使用者登入時,就放在Redis資料庫中,選用Redis資料庫時因為那我們頻繁切換網頁,就需要頻繁去查詢資料庫,Redis讀寫速度更快。而且購物車資訊一般包含user_id, sku_id, count,Redis資料庫的hash資料型別更方便儲存和讀取這些資訊。因為hash型別取出來時是字典