redis-基本知識

1.數據存儲

     數據保存在內存,這使得redis的訪問速度非常快;

     可擴展,通過主從複製,分片。

2.數據結構

     string,list,set,zset,hash

3.常用命令

     keys*:查找所有鍵   

     flushall:刪除所有鍵

4.redis事務

   通過multi開啓事務,然後將執行的命令加入隊列,最後使用EXEC執行加入隊列中的命令。

        有兩種錯誤,1。語法錯誤2.運行時錯誤(如用操作列表的命令執行string類型的命令)

        若是語法錯誤,事務將會回滾;若是運行時錯誤,自動略過錯誤命令,其他命令正常。

    discard清除先前在事務中放入隊列的指令;watch監控鍵,不同客戶端修改監控鍵事務將終止。

5.pub/sub 

    Redis的支持發送/訂閱消息,通過pub將消息發送到管道(channel),由sub訂閱管道接收消息。

6.持久化 

 快照持久化:

           bgsave將會調用fork創建一個子進程處理持久化數據,父進程繼續處理請求命令

           save接收save命令後,將快照創建完畢後,才處理其他命令

           配置文件save 60 1000,自動調用bgsave
aof持久化:
     AOF持久化的實質就是將被執行的命令寫到AOF文件的末尾,以此來記錄數據發生的變化。
     因此只要執行一次AOF文件中的命令就可以恢復AOF文件所記錄的數據集了。
   調用對文件的寫入,將需要寫入的文件內容存儲到緩衝區,系統在某個時候將緩衝區信息寫入硬盤

   問題一:爲什麼訪問查詢那麼快

      1.完全基於內存,絕大部分操作純粹內存操作;

      2.單線程,避免了不必要的上下分切換和競爭條件,不用考慮各種鎖操作,加鎖釋放鎖;

      3.多路複用,非阻塞io

   問題二:緩存雪崩

      1.不同的key設置不同的過期時間

      2.通過加鎖和隊列控制讀數據庫和寫緩存的線程數量

      3.二級緩存

   問題三:緩存擊穿

       1.對key一定不存在的數據過濾

       2.對沒有數據key的也設值如null

   問題四:緩存一致性

       1.數據實時同步更新   

          修改數據庫的同時,修改緩存,數據一致性比較強,數據同步沒有延時

       2.數據準實時更新 

          使用多線程,MQ實現,數據同步有較短時間延時

       3.緩存失效機制

          對緩存數據設置失效時間,有一定的延時時間(設置的失效時間),可能存在緩存雪崩

       4.任務調度更新

          最終一致性,按一定的頻率更新;

 

  個人搜索資料整理的,爲了應對面試,也希望分享出來幫助大家。

  如有不對的地方非常希望能夠指點一下, 由於寫的較早,已忘記參考博客鏈接, 在此感謝,同時非常抱歉下次定會注意.

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