1. 程式人生 > >redis相關問題

redis相關問題

一致性 異步操作 執行 其他 復制。 目前 密碼 數據量 物理內存

什麽是Redis?簡述它的優缺點?

  • Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內存當中進行操作,

   定期通過異步操作把數據庫數據flush到硬盤上進行保存。

  • 因為是純內存操作,Redis的性能非常出色,每秒可以處理超過 10萬次讀寫操作,

   是已知性能最快的Key-Value DB。

  • Redis的出色之處不僅僅是性能,Redis最大的魅力是支持保存多種數據結構,此外單個value的最大限制是1GB,

   不像 memcached只能保存1MB的數據,因此Redis可以用來實現很多有用的功能。

  • 比方說用他的List來做FIFO雙向鏈表,實現一個輕量級的高性 能消息隊列服務,

   用他的Set可以做高性能的tag系統等等。

  • 另外Redis也可以對存入的Key-Value設置expire時間,因此也可以被當作一 個功能加強版的memcached來用。
  • Redis的主要缺點是數據庫容量受到物理內存的限制,不能用作海量數據的高性能讀寫,因此Redis適合的

   場景主要局限在較小數據量的高性能操作和運算上。


RDB與AOF的區別

  RDB 保存的是數據本身,AOF保存的是命令。

Redis集群會有寫操作丟失嗎?為什麽?

  Redis並不能保證數據的強一致性,這意味這在實際中集群在特定的條件下可能會丟失寫操作。

Redis集群之間是如何復制的?

  異步復制。

Redis集群如何選擇數據庫?

  Redis集群目前無法做數據庫選擇,默認在0數據庫。

怎麽測試Redis的連通性?

  ping,返回pong。

為什麽Redis需要把所有數據放到內存中?

  Redis為了達到最快的讀寫速度將數據都讀到內存中,並通過異步的方式將數據寫入磁盤。

  所以redis具有快速和數據持久化的特征。如果不將數據放在內存中,磁盤I/O速度為嚴重影響redis的性能。

  在內存越來越便宜的今天,redis將會越來越受歡迎。 如果設置了最大使用的內存,則數據已有記錄

  數達到內存限值後不能繼續插入新值。

怎麽理解Redis事務?

  • 事務是一個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,

  不會被其他客戶端發送來的命令請求所打斷。

  • 事務是一個原子操作:事務中的命令要麽全部被執行,要麽全部都不執行。

Redis事務相關的命令有哪幾個?

  MULTI、EXEC、DISCARD、WATCH

Redis如何做內存優化?

  • 盡可能使用散列表(hashes),散列表(是說散列表裏面存儲的數少)使用的內存非常小,

  所以你應該盡可能的將你的數據模型抽象到一個散列表裏面。

  • 比如你的web系統中有一個用戶對象,不要為這個用戶的名稱,姓氏,郵箱,密碼設置單獨的key,

  而是應該把這個用戶的所有信息存儲到一張散列表裏面。



Redis如何做內存優化?

  • 盡可能使用散列表(hashes),散列表(是說散列表裏面存儲的數少)使用的內存非常小,

  所以你應該盡可能的將你的數據模型抽象到一個散列表裏面。

  • 比如你的web系統中有一個用戶對象,不要為這個用戶的名稱,姓氏,郵箱,密碼設置單獨的key,

  而是應該把這個用戶的所有信息存儲到一張散列表裏面。

redis相關問題