首頁>>技術前沿>>網站優化及SEO
Redis操作
作者:西安軟件開發公司 | 轉載 來源:西安軟件開發公司 | 時間:2018年7月13日| 點擊:0次 | 【評論】

- Redis服務器的所有數據庫都保存在服務器狀態redis.h/redisServer結構的db數據中。
- 切換數據庫
Redis切換數據庫用select語句。
目前redis沒有可以返回客戶端目標數據庫的命令,謹慎使用。
3.數據庫鍵空間操作
添加 set date “2016.01.02”
刪除 del date
更新 set date “2016.02.03”
4.使用Redis命令時,服務器還會執行一些額外的維護操作。
- 讀取一個鍵后,服務器會根據鍵是否存在來更新服務器的鍵空間命中(hit)次數或不命中次數(miss)次數,這兩個值可以在INFO stats命令的keyspace_hits和keyspace_miss中查看
- 讀取一個鍵后,服務器會更新鍵LRU(最后一次使用)時間,這個值可以計算鍵的空閑時間,使用OBJECT idletime 來查看鍵的空閑時間
- 如果服務器在讀取一個鍵時發現鍵已經過期,服務器會先刪除這個過期鍵,然后執行其他操作。
- 如果客戶端使用watch命令來監視某個鍵,那么服務器在對被監視的鍵進行修改之后,會將這個鍵標記為臟(dirty),讓事物程序注意到這個鍵被修改了。
- 服務器每次修改鍵,會對臟鍵計數加1,這個計數器會觸發服務器的持久化以及復制操作。
- 如果服務器開啟了數據庫通知功能,在對鍵修改之后,服務器將按配置發送相對應的數據庫通知。
5.設置鍵的過期時間


通過expire命令或者pexpire命令
set key value
這里寫圖片描述
這里寫圖片描述
6.過期鍵刪除策略
這里寫圖片描述

定時刪除
這里寫圖片描述

惰性刪除
這里寫圖片描述
redis命令在執行前會通過調用expireIfNeeded函數對輸入鍵進行檢查,如果過期expireIfNeeded函數會將鍵刪除,如果沒過期不做動作。
當鍵存在按鍵存在的情況執行,不存在則按照鍵不存在情況執行。

定期刪除
這里寫圖片描述
函數每次運行,會從一定量的數據庫中抽取一定數量的隨機鍵進行檢查,并刪除其中的過期鍵。
全局變量current_db記錄當前activeExprieCycle函數檢查的進度。當檢查完所有數據庫會將current_db重置為0,重新一輪檢查。
7.AOF、RDB和復制功能對過期鍵的處理

 

執行Save命令或者BGSAVE命令創建新的RDB持久化文件,程序會對數據庫會中的鍵進行檢查,過期的鍵不保存到RDB文件中。

載入RDB文件
1.如果服務器以主服務器模式運行,載入RDB文件時候,會忽略掉過期鍵。
2.以從服務器運行,文件保存所有鍵,但是主從服務器進行數據同步的時候,從服務器的數據庫會被清空,所有過期鍵對載入的RDB文件的從服務器也不會有影響。
AOF文件寫入
服務器已AOF持久化運行,也不會有過期鍵的影響。
重寫也不會有過期鍵的影響。

復制

這里寫圖片描述
8.數據庫通知

可以讓客戶端通過訂閱給定的頻道或者模式。

此內容DOC下載 此內容PDF下載

【全文完】
關鍵詞標簽: Redis 
0 ([$-頂稿人數-$])
0 ([$-踩稿人數-$])

版權聲明:

1、陜西弈聰網站內容中凡注明“來源:XXX(非陜西弈聰網站)”的作品,轉載自其它媒體,轉載目的在于傳遞更多信息,其中涉及的網站建設,網站優化,百度關鍵詞優化,西安軟件開發等技術細節并不代表本站贊同支持其觀點,并不對其真實性負責。對于署名“陜西弈聰”的作品系本站版權所有,任何人轉載請署名來源,否則陜西弈聰將追究其相關法律責任。

2、本站內容中未聲明為“原創”的內容可能源自其它網站,但并不代表本站支持其觀點,對此帶來的法律糾紛及其它責任與我方無關。如果此內容侵犯了您的權益,請聯系我方進行刪除。

天天影视综合网