django之redis和django-redis的使用

Posted xuxingping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django之redis和django-redis的使用相关的知识,希望对你有一定的参考价值。

-redis

  -非关系型内存数据(nosql:mongodb,redis),key-value的存储
  -单线程单进程,qps:10w
  -Memcached:多线程,支持的数据类型少:只支持字符串类型,不支持持久化
  -redis:5大数据类型
    k1:‘123‘, 字符串
    k2:[1,2,3,4], 列表/数组
    k3:1,2,3,4 集合:去重,爬虫去重
    k4:name:lqz,age:12 字典/哈希表
    k5:(‘lqz‘,18),(‘egon‘,33) 有序集合:游戏排行榜
  -redis支持持久化:两种持久化的方案


-python操作redis
  from redis import Redis
  conn=Redis()


-redis连接池
  #pool需要做成单例
  pool=ConnectionPool(host=‘127.0.0.1‘,port=6379,max_connections=100)
  conn=Redis(connection_pool=pool)


-redis之字符串操作
  -set
  -get
  -mset
  -mget
  -incr
  -decr
  -append


-redis之hash操作
  -hset
  -hmset
  -hget
  -hmget
  -hgetall
  -hlen
  -hdel
  -hincrby
  -hscan
  -hscan_iter


-redis之列表操作
  -lpush
  -llen
  -linsert
  -lpop
  -blpop

  -自定义增量迭代


只支持一层的5大数据类型:也就是说字典的value值只能是字符串,列表的value值只能是字符串

-redis的其他操作
  -delete
  -exisit
  -rename
  -keys 模糊匹配key值
  -expire
  -type

-事务(重点)
  conn=Redis()
  pipe = conn.pipeline(transaction=True)
  pipe.multi()
  pipe.set(‘name‘, ‘alex‘)
  pipe.set(‘role‘, ‘sb‘)
  pipe.execute()


-在django中使用redis
  -所有框架都能用的方式:
    -先新建一个py文件,生成一个redis连接池
    -在哪用,导过来,
      conn=Redis(connection_pool=POOL)
      conn.set(‘xxx‘,‘yyyy‘)
  -django中使用:django-redis模块
    -在setting中配置:
      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
    -使用
      在使用的位置:
      from django_redis import get_redis_connection
      conn=get_redis_connection()
      conn.set

以上是关于django之redis和django-redis的使用的主要内容,如果未能解决你的问题,请参考以下文章

redis 之django-redis

redis之django-redis

django-redis结合drf实现缓存

django-redis-cache 和 django-redis 用于使用 Django 进行 redis 缓存的区别?

django-redis 使用规范

django-缓存django-redis