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.........
  • 相关阅读:
    HDU 4782 Beautiful Soup (模拟+注意细节)
    Linux 简单socket实现UDP通信
    Linux 简单socket实现TCP通信
    HDU 1698 Just a Hook(线段树区间覆盖)
    HDU 1271 整数对(思路题)
    HDU 2222 Keywords Search (AC自动机模板题)
    Windows平台使用Gitblit搭建Git服务器图文教程
    Git克隆
    移动端布局,div按比例布局,宽度为百分比,高度和宽度一样,即让div为正方形
    calc()问题
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/11023002.html
Copyright © 2011-2022 走看看