zoukankan      html  css  js  c++  java
  • python django redis 集合 实现在线人数

     redis 版本 pip install redis==2.10.6

    settings.py

    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
            }
        }
    }
    

      middlewore.py

    	def process_request(self,request):
    		ip=get_ip(request)  # 获取ip
    		add_ipredis(ip)   # 添加集合
    

      

    # 添加集合 和获取ip 函数

    def get_ip(request):
    	print(request,'555')
    	if request.META.get('HTTP_X_FORWARDED_FOR'):
    		ip = request.META.get("HTTP_X_FORWARDED_FOR")
    		return ip
    	else:
    		ip = request.META.get("REMOTE_ADDR")
    		return ip
    
    def add_ipredis(ip):
    
    	count_set = get_redis_connection('default')
    
    	count_set.zadd('onlines',ip,time.time())  # 存入有序集合 加入时间戳
    	# count_set.zadd("onlines",{ip:int(time.time())})
    	# 从当前时间前两个小时到当前时间前一个小时区间进行删除
    	count_set.zremrangebyscore('onlines',int(time.time())-7200,int(time.time())-3600 )
    

      

      

  • 相关阅读:
    CSS实现返回网页顶部
    jQuery实现小火箭动态返回顶部代码
    Linux目录结构介绍
    Linux常用命令及技巧
    Linux文件系统
    Linux特性
    numpy中基础函数
    restful规范
    堆栈
    三次握手与四次挥手
  • 原文地址:https://www.cnblogs.com/zhangshijiezsj/p/14174939.html
Copyright © 2011-2022 走看看