21.9 redis介紹
21.10 redis安裝
21.11 redis持久化
21.12 redis數據類型
Redis介紹
redis安裝
在官網redis.io上下載最新穩定版,並編譯安裝(該應用相對特殊,無需configure直接進入make&& make install階段)
如下圖,查看redis-有很多不同後綴的文件
把redis.conf拷貝到/etc/下, 並修改關鍵配置文件
①daemonize yes:允許後臺運行
②定義logfile:/var/log/redis.log(redis中有database的概念,默認有16個,從0開始)
③定義rdb文件的路徑 dir
主從的一些相關參數
④ append only 參數,如果設置成yes就會在之前定義的dir下生成一個append.aof文件
有更新的時候記錄頻率
mkdir,redis-server /etc/redis.conf
此處還有兩個內核參數告警
①overcommit參數值建議設置成1 ②把 echo never加入到開機啓動項/etc/rc.local中
強烈建議在命令行模式設置後,也把這兩行內核參數加入到/etc/rc.local中
redis持久化
和mysql不同,mysql的數據在內存只是一個臨時的中轉站,最終存到磁盤上,而redis則兩者都可以(內存和磁盤等其他外部介質)
RDB:相當於把內存的數據鏡像一份到磁盤上,時間是由redis.conf配置文件中的save參數決定的
900秒內發生一次,300秒內發生十次,60秒內發生10000次更改就會觸發(註釋掉這三行,打開上面的save " "表示關閉持久化)
AOF:侷限性在於:隨着時間的增長,每次更改會不斷記錄日誌文件,需要優化過程(記錄redis執行過程中的指令,下次redis重新啓動時重新執行一遍,實現數據恢復);所謂優化,比如過一段時間發現很多AOF日誌過期,可以刪除相關的key
AOF的三種形式:
最後一種是根據系統的頻率去同步,第二種最優,第一種過於耗費磁盤IO/A
是否使用RDB/AOF根據實際情況而定(數據從內存→IO到磁盤的過程)
redis數據類型
①string
如下圖示例:
②list
具體示例:LPUSH (鏈表中加入一些元素), LRANGE(查看list所有值,先進後出), LPOP (後進先出)
③set
示例:sadd 加set集合; smembers查看集合所有元素;sunion 並集; sinter 交集; sdiff 差集;srem 刪除某元素
④sort set有序集合
示例:ZADD 有序添加集合set, ZRANGE 按照score大小正序排列後面的value,不顯示score ; ZREVRANGE 倒序排列
⑤hash(可以認爲是結構化的hashmap)
示例:
發現換了最後一示例最後個度來實現持久化,那就④是將redis執行過的所有寫指令記錄下來,在下次redis重新啓動時,只要把這些寫指令從前到後再重複執行一遍,就可以實現數據了一個角度來實現持久化,那就是將redis執行過的所有寫指令記錄下來,在下次redis重新啓動時,只要把這些寫指令從前到後再重複執行一遍,就可以實現數據恢復了。