本章主要講述了redis的幾個應用場景。
使用Redis記錄日誌
在linux中有兩種記錄日誌的方式,一種是將其記錄到文件中,一個又一個的添加日誌行以及文件,包括redis在內的軟件都使用這種方式。另一種是使用syslog服務,除了存儲日誌,syslog還負責日誌的輪換和刪除,syslog的轉發功能可以將不同日誌存到多個文件中。
使用redis的lpush命令將日誌推入列表,使用lrange獲取。
SEVERITY = {
#使用事務的方式,將通信往返次數降低爲一次 #lpush recent:app:info 2018/01/01message #修剪日誌,保留100條 #執行 |
查看常見日誌,使用有序集合Zset,對於出現的日誌行進行Zincrby自增操作。
計數器和統計數據
使用一個散列來存儲每隔5秒的訪問量Hset count:5hit 2018/01/01/15/16/15 5
使用redis還可以統計頁面的訪問時間,統計其最小值,最大值,樣本數量,總和,平均值等信息。
當採取對每隔小時數據進行歸檔時,可以使用Zunionstore進行min,max等信息的聚合。
查找IP所屬城市和國家
導入IP地址段對應城市數據,以及城市和國家名等數據。
IP轉數字:
def ip_to_score(ip_address): score = 0 for v in ip_address.split('.'): score = score * 256 + int(v, 10) return score |
轉爲整數之後即可創建IP和地址之間映射了
服務的發現與配置