zoukankan      html  css  js  c++  java
  • Django中使用Redis缓存

    Redis数据库

    Redis vs MySQL

    • redis: 内存数据库(读写块)、非关系型(操作数据方便)
    • MySQL:硬盘数据库(数据持久化)、关系型(操作数据间关系)
    • 大量访问临时数据,采用redis数据库更优

    Redis vs Memcache

    • Redis
      • 操作字符串、列表、哈希、无序集合、有序集合
      • 支持数据持久化,有一部分数据存在硬盘中(数据丢失可以找回、可以将数据同步给mysql)
      • 高并发
    • Memecache
      • 操作字符串
      • 不支持数据持久化
      • 并发量小

    Redis操作

    • 基础操作:
      • 启动服务:redis-server
      • 链接数据库:redis-cli
      • 链接指定数据库:redis-cli -h 127.0.0.1 -p 6379 -n 1 (-n表示要连接的库)
      • 切换数据库:select 1
    • 数据操作:
      • 字符串
      • 列表
      • 哈希
      • 无序集合
      • 有序集合(游戏排行榜)

    Redis数据库

    • 命令行简单使用redis:
      • redis-cli -- 启动客户端
      • set key value -- 设置值
      • get key -- 取出值
    • 特点:
      • 可持久化
      • 单线程单进程并发

    Python使用Redis

    1.依赖:

    pip install redis
    

    2.直接使用:

    import redis
    r = redis.Redis(host='127.0.0.1', port=6379, db=1)
    

    3.连接池使用:

    import redis
    pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=10, max_connections=100)
    r = redis.Redis(connection_pool=pool)
    

    4.缓存使用:额外安装django-redis:

    # 安装django-redis
    pip install django-redis
    
    # settings.py
    # 将缓存存储位置配置到redis中
    ACHES = {
        "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}
            }
        }
    }
    
    # views.py
    # 操作cache模块直接操作缓存
    from django.core.cache import cache
    # 存放token,可以直接设置过期时间
    cache.set('token', 'header.payload.signature', 10)
    # 取出token
    token = cache.get('token')
    
  • 相关阅读:
    刷新SqlServer数据库中所有的视图
    代码的阅读
    unity3d的模型规范
    XOCDE5开发
    unity3d自动寻路教程
    u3d性能优化
    U3D层的运用
    关于unity3d插件的自动打包
    unity3d各平台通讯原生的平台API的说明
    uniSWF使用注意事项
  • 原文地址:https://www.cnblogs.com/17vv/p/11979398.html
Copyright © 2011-2022 走看看