一、安装&配置1、安装pipinstalldjango-redis注意:版本选择Django版本支持:django-redis3.8.x支持django1.4、1.5、1.6、1.7(可能会有1.8)django-redis4.4.x支持django1.6,1.7,1.8,1.9and1.10RedisServersupport:django-redis3.x.ysupportsredis-server2.6.xorhigherdjango-redis4.x.ysupportsredis-server2.8.xorhigher2.在djangoConfiguration中配置在项目的setting.py文件中:CACHES={"default":{"BACKEND":"django_redis.cache.RedisCache","LOCATION":"redis://127.0.0.1:6379/1","OPTIONS":{"CLIENT_CLASS":"django_redis.client.DefaultClient",}}}或CACHES={"default":{"BACKEND":"django_redis.cache.RedisCache","LOCATION":"redis://127.0.0.1:6379/1","OPTIONS":{"CLIENT_CLASS":"django_redis.client.DefaultClient","PASSWORD":"mysecret"}}}配置为会话后端:Django默认后端可以使用任何缓存后端作为会话后端,使用django-redis作为session存储回来结束而不安装任何额外的backendSESSION_ENGINE="django.contrib.sessions.backends.cache"SESSION_CACHE_ALIAS="default"pickle版本django-redis使用pickle序列化几乎所有数据,default使用-1=最新版本CACHES={"default":{#..."OPTIONS":{"PICKLE_VERSION":-1#使用最新协议版本}}}设置超时时间SOCKET_CONNECT_TIMEOUT:socket建立连接超时设置SOCKET_TIMEOUT:连接建立后读写操作超时设置CACHES={"default":{#..."OPTIONS":{"SOCKET_CONNECT_TIMEOUT":5,#inseconds"SOCKET_TIMEOUT":5,#inseconds}}}支持压缩django-redis支持压缩,但是默认是关闭的,可以激活:CACHES={"default":{#..."OPTIONS":{"COMPRESSOR":"django_redis.compressors.zlib.ZlibCompressor",}}}使用lzma压缩的例子importlzmaCACHES={"default":{#..."OPTIONS":{"COMPRESSOR":"django_redis.compressors.lzma.LzmaCompressor",}}}2.使用django_redis1.设置key的ttlfromdjango.core.cacheimportcache//timeoutis过期时间,单位:秒,timeout=0表示立即过期,timeout为Noneforever无超时cache.set(key,val,timeout)//ttlsearch搜索过期时间,返回值:0--表示key不存在或过期,//None--key存在,但没有设置过期时间cache.ttl(key)//expire指定一个过期时间keycache.expire(key,timeout)//持久化设置key永不过期chache.persist(key)2、redis锁django-redis支持redis分布式锁。锁的线程接口是一样的,所以你可以用它来替代。使用python上下文管理服务器分配锁示例:fromdjango.core.cacheimportcachewithcache.lock(key):do_something()3.扫描keyfromdjango.core.cacheimportcachecache.keys("demo_*")//redis版本2.8及更高版本的服务器端游标,//使用iter_keys而不是keys方法cache.iter_keys("demo_*")fromdjango_redisimportget_redis_connectionscan_res=conn.scan_iter('key_*')
