Redis的數據類型和使用場景 常見面試題記憶

Redis支持的數據類型:

String字符串:

格式:set key value

string類型是二進制安全的,string可以包含任何數據,比如jpg圖片或序列化對象。

string類型是redis最基本的數據類型,一個鍵最大能存儲512MB。

Hash哈希:

格式:hmset name key1 value1 key2 value2

Redis hash是一個鍵值對(key=>value)集合。

Redis hash是一個string類型的映射表,hash特別適合用於存儲對象。

List列表:

格式:lpush name value頭部添加字符串元素

           rpush name value尾部添加字符串元素

           llen name返回對於list的長度

Set無序集合:

格式:sadd name value

集合是通過哈希表實現的,所有添加、刪除、查找的複雜度都是O(1)。

Zset有序集合:

格式:zadd name score value

集合中不允許重複的成員,不同的每個元素都會關聯一個double類型的分數。redis正是通過集合中的成員進行從大到小的排序。

zset成員是唯一的,但分數score可以重複。

 

什麼是Redis持久化?Redis有哪幾種持久化方式?優缺點是什麼?

持久化就是把內存的數據寫到磁盤中去,防止服務宕機,內存數據丟失。

Redis提供了兩種持久化方式:默認RDB 和 AOF

RDB:

rdb是Redis DataBase縮寫

功能核心函數rdbSave(生成RDB文件)和rdbLoad(從文件加載內存)兩個函數。

AOF:

aof是Append-only file縮寫

每當執行服務器定時任何或者函數時flushAppendOnlyFile函數被調用,該函數執行以下兩個工作:

aof寫入保存:

write:根據條件,將aof_buf中的緩存寫入到AOF文件

save:根據條件,調用fsync或fdatasync函數,將AOF文件保存到磁盤中。

rdb 和 aof 的兩個方式比較:

  • aof文件比rdb更新頻率高,優先使用aof還原數據。
  • aof比rdb更安全也更大
  • rdb性能比aof好
  • 如果兩個都配了優先加載AOF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章