Redis中通用操作及數據持久化

Keys通用操作:
  1. 顯示所有鍵列:keys *
  2. 指定開頭鍵列:keys [*]?
  3. 刪除:del 鍵...
  4. 判斷存在:exists 鍵
  5. 重命名:rename 舊鍵名 新鍵名
  6. 設過期時間(單位是s秒):expire 鍵 [seconds]
  7. 查過期時間:ttl 鍵
  8. 鍵的值類型:type 鍵
  9. 清空緩存:flushall


Redis中數據庫特性:
  1. 每個Redis實例有16個數據庫,角標從0~15,默認爲0,也可以通過select來選擇數據庫。
    比如:select 1,選擇1號數據庫。
  2. move用於在不同數據庫之間移動數據。比如:move myset 1,表示移動myset這個key到1號數據庫。
  3. 開啓事務會將任務放到queue中,當提交事務時逐個執行。

命令:
  1. 切換數據庫:select [0~15]
  2. 移動數據到指定數據庫:move name databaseIndex
  3. 開啓事務:multi
  4. 提交事務:exec
  5. 回滾事務:discard 相當於rollback


數據持久化:

Redis高性能是因爲所有的數據都是存儲在內存當中,但是使Redis重啓後仍然能保持數據不丟失,就需要將數據從內存當中同步到內存上,這個過程稱爲持久化,常用的有兩種方式:
  1. RDB:Redis默認支持的,不需要進行配置,在指定的時間間隔內將內存中的數據快照寫入磁盤
  2. AOF:以日誌的形式記錄服務器所處理的每個操作,在Redis服務器啓動時會讀取該日誌文件來重新構建數據庫,保證啓動後的數據是完整的。默認是關閉的,需要我們手動開啓
    
我們也可以將redis持久化關閉,關閉以後可以將redis看成一個緩存.用作緩存

還可以同時使用 RDB和AOF 兩種方式保證數據持久化,使數據更完整


RDB:

 優點:
  1. 可將數據庫保存爲一個文件,便於備份
  2. 可方便移植
  3. 性能最大化,可開啓小的進程處理持久化操作

 缺點:
  1. 不能保證數據完整性,例如在下一次保存快照之前宕機了,那麼這部分的數據可能就丟失了。
  2. 持久化需要fork一個子進程來處理,當數據過大這將會延遲幾百到一千毫秒

 配置過程:
  1. 編輯redis.conf文件:vim redis.conf
  2. 找到時間戳, save <seconds> <changes>
    save 900 1:900s之內鍵值發生1次改變則執行持久化
    save 300 10:300s之內鍵值發生10次改變則執行持久化
    save 60 100000:60s之內鍵值發生100000次改變則執行持久化
  3. 所有的數據默認保存在rdb文件中,rdb文件默認保存在redis安裝目錄



AOF:

優點:
  1. 同步寫入頻率高,效率低,方式最安全.
  2. 寫入模式採用append模式,追加模式, 不破壞寫入日誌數據,在redis中追加也不會破壞文件.如果在寫入一半的時候出現熊崩潰問題,redis下次啓動之前通過 redis-check-aof這個工具來幫助數據一致性問題
  3. 當數據過大,可啓動修改重寫機制,redis採用append的這種機制,將新的修改的數據不斷地寫到老的磁盤文件當中,同時創建新的文件保存操作,保證修改數據的更新
  4. 日誌文件格式清晰,便於重建數據

缺點:
  1. 對於相同數據集aof文件比rdb文件大一些
  2. 根據同步策略不同,效率比rbd低.

配置過程:
  1. 編輯redis.conf:vim redis.conf
  2. 找到appendonly,需要改成yes(因爲默認使用rdb方式所以默認爲no),同時還需要在下面配置同步策略:
    • Appendfsync always::修改一次就同步到磁盤上(安全性最高)
    • Appendfsync everysec:每秒會向硬盤中同步一次
    • Appendfsync no:不同步到硬盤中
  3. Redis的目錄下會產生appendonly.aof這個文件,用來保存appendonly的之前的增刪改操作,
  4. 停掉redis  ./bin/redis-cli shutdown
  5. 重啓redis  ./bin/redis-servers ./redis.conf
  6. flushall清空數據庫
  7. 進入appendonly.aof刪除flushall可以恢復數據庫

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