zoukankan      html  css  js  c++  java
  • python3连接redis

    一、基本使用

    import redis
    
    # 普通连接
    conn = redis.Redis(host="192.168.23.166", port=6379,password="123456")
    conn.set("x1","hello",ex=5) # ex代表seconds,px代表ms
    val = conn.get("x1")
    print(val)
    
    
    import redis
    
    # 连接池
    pool = redis.ConnectionPool(host="192.168.23.166", port=6379,password="123456",max_connections=1024)
    conn = redis.Redis(connection_pool=pool)
    print(conn.get("x1"))

    全局配置

    # redis配置
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100}
                # "PASSWORD": "密码",
            }
        }
    }

    二、缓存级别

    1.全栈缓存

    在settings.py配置文件中添加
    MIDDLEWARE = [
        'django.middleware.cache.UpdateCacheMiddleware',
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]
    
    
    其中'django.middleware.cache.UpdateCacheMiddleware'位于列表第一位,因为views函数处理后,还需要中间件进行处理,中间件处理后,最终的数据才是想要的结果。
    'django.middleware.cache.FetchFromCacheMiddleware'位于列表最末,因为只有经过中间件认证或者其他处理后,才是合法、有效的请求,所以查询需要放到中间件最末。

    2.视图缓存

    from django.views.decorators.cache import cache_page
    
    @cache_page(60*15)
    def index(request):
        return HttpResponse("ok")
    
    # 缓存15分钟

    3.元素缓存

    a.引入templatetag
        {% cache %}
    
    b.使用缓存
        {% cache 5000 缓存key %}
            缓存内容
        {% endcache %}

     三、基本操作

    redis
    hget
    hgetall
    hincrby("k2","age",amount=num) # num为正数或负数
    hincrbyfloat
    
    如果k4对应数据又1000w条数据,打印全部
    hscan_iter("k4",count=100)
    
    redis操作对象时,只有第一层value支持:list、dict.........
  • 相关阅读:
    Python运维开发之路《WEB框架:Django》
    Python运维开发之路《函数进阶》
    Python运维开发之路《编程》
    Python运维开发之路《模块》
    Linux系统运维之Web服务器Nginx安装
    Python运维开发之路《高阶函数》
    Python运维开发之路《函数》
    <读书笔记>软件调试之道 :实证方法
    (知识分享)软硬件调试九法:第九条规则 如果你不修复一个bug,它将永远 存在
    (知识分享)软硬件调试九法:第八条规则 求助他人, 获得全新观点
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/11023002.html
Copyright © 2011-2022 走看看