<Redis In Action>5.3 IP-to-city and -country lookup

原文:https://redislabs.com/ebook/redis-in-action/part-2-core-concepts-2/chapter-5-using-redis-for-application-support/5-3-ip-to-city-and-country-lookup

当我们已经收集了统计信息和日志到Redis,我们已经收集了关于我们系统访客的行为信息。但是我们忽略了访客行为的一个重要的部分 ——访客来自哪里?在这一节我们将建造一组用来解析IP到地区数据库的函数,并且我们将写一个函数查询IP地址用来确定访客的城市、地区、国家。让我看一个例子。

当FAKE游戏公司的访客成倍增加,玩家已经来自世界各地。虽然想google 分析这样的工具已经帮助公司知道了用户来源的主要国家,然而他们想知道城市和地区来更好的了解用户。这就是我们的工作,使用一个IP地址解析到城市的数据结合Redis来查找用户地点。

我们使用Redis来替代传统的关系型数据库,因为Redis在这个案例将更快。我们使用Redis在本地查找表,因为大量的用户信息查找使得启动应用时加载表是一个相对昂贵的操作。开始使用我们的查找表,首先需要加载表到Redis。

Fake

时间: 2024-08-10 02:09:11

<Redis In Action>5.3 IP-to-city and -country lookup的相关文章

openresty通过 Lua + Redis 实现动态封禁 IP

一)需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单. 对于黑名单之内的 IP ,拒绝提供服务. 二)设计方案 实现 IP 黑名单的功能有很多途径: 1.在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求: 2.在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单: 3.在应用层面,在请求服务之前检查一遍客户端 IP 是否在黑名单. 为了方便管理和共享,我们通过 Nginx+Lu

redis.conf中bind绑定IP不对,redis集群创建节点的时候,报错|redi群集密码设置

前言# 我们都知道,redis 的配置文件中,默认绑定接口是 127.0.0.1,也就是本地回环接口,所以是无法从外网连接 redis 服务的.如果想要让外网也能连接使用服务器上的 redis 服务,可以简单地注释掉 bind 这一行.但对于 bind 参数的作用,网上有很多文章的解释都是误人子弟的. 关于bind# 翻看网上的文章,此处多翻译为: 指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项.这种解释会搞糊涂初学者,甚至是错误

《Redis in Action》笔记(一)文章投票(1)初始化数据 + 投票 + 发布文章

原书用 Python 与 Redis 进行交互,我用 PHP 来实现. 环境:LNMP(CentOS 6.6 + Nginx 1.8.0 + MySQL 5.6.23 + PHP 5.6.9)+ Redis 3.0.7 + phpredis 2.2.4 首先在 Linux 开启 Redis 服务: [[email protected] ~]# cd /usr/local/redis/ [[email protected] redis]# ./bin/redis-server ./etc/redi

&lt;Redis In Action&gt;5.2.3 Simplifying our statistics recording and discovery

原文:https://redislabs.com/ebook/redis-in-action/part-2-core-concepts-2/chapter-5-using-redis-for-application-support/5-2-counters-and-statistics/5-2-3-simplifying-our-statistics-recording-and-discovery 现在我们已经有了存储在Redis的统计数据,接下来怎么办?具体的来说,我们现在已经有了关于没个页面

《Redis in action》读书笔记

https://www.gitbook.io/book/abcfy2/redis-in-action-reading-notes 最近在学习redis,正在看这本书,以笔记的形式记录下这本书,方便以后翻阅. 这本书介绍很不错,入门很值得参考,图文并茂解说redis的存储数据类型,很容易理解. 其中范例代码使用python编写,对熟悉python的用户很容易上手. 每章记录一下几个要点. 源码托管在github: https://github.com/abcfy2/redis-in-action-

&lt;Redis In Action&gt; 5.2.1 Storing counters in Redis

原文:https://redislabs.com/ebook/redis-in-action/part-2-core-concepts-2/chapter-5-using-redis-for-application-support/5-2-counters-and-statistics/5-2-1-storing-counters-in-redis 正如监控应用程序一样,随着时间的推移,获取系统信息变得越来越重要.代码变更(能够影响站点响应速度以及服务的网页数量),新的广告活动,新的用户都能从根

&lt;Redis In Action&gt; 5.1.2 Common logs

文章来源:https://redislabs.com/ebook/redis-in-action/part-2-core-concepts-2/chapter-5-using-redis-for-application-support/5-1-logging-to-redis/5-1-2-common-logs 如果你已经运行了log_recent(),你可能会发现,尽管它在获取系统当前发生了什么事情方面非常有用,但它不含告诉你是否错过了一些重要的信息,通过记录一些特定信息的出现频率,你就能够依

解决不能使用ip访问主机redis

遇到主机redis使用localhost和127.0.0.1都可以访问,但是使用主机ip访问就连接不上,三番查阅终得解药,拿好不谢! 1.打开redis.windows.config文件(linux对应redis.conf文件),将NETWORK下bind 127.0.0.1注释掉,将protected-mode yes改为protected-mode no: 2.同理修改redis.windows.server.config文件中相应内容: 3.重启redis服务,即可使用ip访问redis了

python使用redis实现ip代理池

一.代码 #使用apscheduler库定时爬取ip,定时检测ip删除ip,做了2层检测,第一层爬取后放入redis——db0进行检测,成功的放入redis——db1再次进行检测,确保获取的代理ip的可用性 import requests, redis import pandas import random from apscheduler.schedulers.blocking import BlockingScheduler import datetime import logging db