本章主要讲述了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和地址之间映射了
服务的发现与配置