Redis學習筆記

2022-03-26 05:04:30 字數 1155 閱讀 7507

以前,一直拿redis當memcached來用,今天才真天了解到了redis真正比memcached強大到了什麼地方,他的真正的強勢到了什麼地方。

首先最讓我困惑的一點是,redis是所有資料都儲存到記憶體裡面的嗎?這讓我費解,如果是,何來keys存在記憶體,從而提高效能。我很困惑,看了rdb、aof以後,發現不像是資料的儲存查詢資料庫檔案。後來我決定重新學習redis相關資料,得到的總結如下:

redis裡的資料儲存在**了?

redis的key是絕對儲存在記憶體裡面的,這也是redis高效能的乙個依仗,哪麼value存到什麼地方了?預設是存在virtual memery裡面了,所謂虛擬記憶體,需要注意的是,這裡的虛擬記憶體並不是系統的虛擬記憶體,而是redis裡的乙個資料儲存檔案,這尼馬讓我鬱悶良久。因為redis裡可以設定vm.swap檔案的存放目錄。

redis的記憶體的使用分析

redis為什麼叫資料庫檔案叫虛擬記憶體,不叫資料庫檔案,這大有文章,所謂redis的設計理念上資料是儲存在記憶體中設計的,因為就算設定了虛擬記憶體,redis會自動將熱的資料放在記憶體,直接提供讀取,把經常不讀的資料放到虛擬記憶體中,從而提高效能。而keys裡己經記錄了虛擬記憶體檔案中的定址資料,讀取也是比一般資料庫要快很多倍的。

redis的集群

redis分片,redis高可用性,redis主從備份,可以參考上文中,redis-trip工具實現redis-cluster真正集群。

redis分片是通過雜湊演算法將key區分幾個區間,然後由劃分庫或伺服器實現分片的。通過redis-trip工具實現非常智慧型。

redis的儲存結構

redis支援map、list、string、int等資料型別,為了減少key的數量,減少記憶體的使用,合理使用map、list可以減少記憶體和清晰程式邏輯。

redis的可靠性

redis官方就宣稱redis並不是乙個資料絕對安全的資料儲存引擎,當儲存時redis會先儲存到記憶體,就返回了狀態,在這期間並沒有寫入磁碟,這很有可能資料就沒有了,但只因為這樣,redis的效能大大提公升,減少了磁碟的寫入頻率。

redis應用場景

redis完全可以做資料快取記憶體資料庫、時時計數、時時統計

redis 學習筆記

本文寫作源於最近產品中部分功能用到了redis redis在功能上是乙個與memecache類似的軟體,但它比memecache提供了更強大的功能。redis本質上是乙個key value型別的記憶體資料庫。其value可以是string,list,set,sorted set,hash。很多地方都...

redis學習筆記

1.redis的無序集合 sadd命令產生乙個無序集合 smembers檢視集合元素 sismember用於檢視集合是否存在,匹配項包括集合名和元素個數。匹配成功返回1,匹配失敗返回0 2.有序集合 zadd 生成乙個有序集合。zrange檢視正序的集合,zrevrange檢視反序的集合 set和g...

redis學習筆記

redis啟動伺服器和客戶端的相關命令 string型別 乙個key對應乙個value set key value 比如 set name geyule setnx 如果key存在返回0,nx表示not exist setex 指定有效期 setrange 替換 setrange key n val...