使用redis快取從資料庫中讀取資料

2021-08-19 09:56:50 字數 1304 閱讀 2724

使用redis從資料庫中讀取資料後快取:

class

myredis

return self::$handler

; }

public

static

function get($key

)

return

$value

; }

public

static

function set($key,$value

)

return self::handler() -> set($key,$value

); }

}

redis 中存資料時,到底什麼時候用  hset 相比於 set 存資料時又有什麼不一樣?

set  就是普通的已key-value 方式儲存資料,可以設定過期時間。時間複雜度為 o(1),每多執行乙個 set 在redis 中就會多乙個 key ,

所以在實際的使用過程中應該使用 set 儲存單個大文字非結構化資料 hset 則儲存結構化資料,乙個 hash 儲存一條資料,乙個 filed 則儲存 一條資料中的乙個屬性,value 則是屬性對應的值。

例如 資料庫中有一張表 user 包含  id,name,age,*** 4個屬性,並且有400w條資料,

id,name,age,***

1、1,張三,16,1

2、2,李四,22,1

3、3,王五,28,0

4、4,趙六,32,1

...如果要整表快取到 redis 中則使用 hash ,一條資料乙個hash 乙個hash 裡則包含4個filed。

hset user_1 id 1 name 張三 age 16 *** 1

hset user_2 id 2 name 李四 age 16 *** 1

...這樣儲存,如果使用者的某個屬性值改變,還可以單個修改。

例如 吧張三的年齡改為30 則可以使用命令:  hset user_1 age 30 

在比如如果要快取應用整個首頁 html ,或則某個商品的詳情介紹(一般來說商品的詳情介紹是makdown語法的富文字資訊,或 html 格式的富文字資訊) 則使用 則可以使用  set

又或則 應用中的 某個熱點資料,都可以使用 set 儲存一大段資料。

最後希望又大神能夠具體講講 為啥 hset 比較節省記憶體,和比較消耗cpu,set 為啥又比較占用記憶體。

redis資料庫快取

使用redis作為快取,資料還需要存入資料庫中嗎?我的答案是 1redis只是快取,不是資料庫如mysql,所以redis中有的資料庫,mysql中一定有。2使用者請求先去請求redis,如果沒有,再去資料庫中去讀取。3redis中快取一些請求量比較大的資料 這些快取資料,mysql中一定也是有的 ...

Redis 從資料庫配置

通過持久化功能,redis保證了即使在伺服器重啟的情況下也不會損失 或少量損失 資料。但是由於資料是儲存在一台伺服器上的,如果這台伺服器的硬碟出現故障,也會導致資料丟失。為了避免單點故障,我們希望將資料庫複製多個副本以部署在不同的伺服器上,即使有一台伺服器出現故障其他伺服器依然可以繼續提供服務。這就...

Python程式設計 redis快取資料庫

broker快取 mongodb 存硬碟 redis 預設存記憶體,配置可存硬碟 memcache 只能存記憶體 remote dictionary server redis redis官網 redis資料型別 string 操作 set get hash 操作 hset hget list 操作 ...