redis={
k1:'123', 字符串
k2:[1,2,3,4,4,2,1], 列表
k3:{1,2,3,4}, 集合
k4:{name:123,age:666}, 字典
k5:{('alex',60),('eva-j',80),('rt',70),},有序集合
}
import redis
conn = redis.Redis(host='127.0.0.1', port=6379)
ex 超时时间 秒
conn.set('x1','yangtao', ex=5)
print(conn.get("x1"))
import redis
# 连接池 最多创建1000个连接
pool = redis.ConnectionPool(host='127.0.0.1', port=6379, max_connections=1000)
r = redis.Redis(connection_pool=pool)
r.set("foo", "christian", ex=5)
#s1.py文件
import redis
REDIS_POOL = pool = redis.ConnectionPool(host='127.0.0.1', port=6379, max_connections=1000)
#s2.py文件
import redis
from redis_pool import REDIS_POOL
r = redis.Redis(connection_pool=REDIS_POOL)
r.set("foo", "christian", ex=5)
引用:http://www.cnblogs.com/wupeiqi/articles/5132791.html
hscan_iter(name, match=None, count=None)
# 利用yield封装hscan创建生成器,实现分批去redis中获取数据
# 参数:
# match,匹配指定key,默认None 表示所有的key
# count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数
# 如:
# for item in r.hscan_iter('xx'):
# print item
安装库:
pip install django-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": "密码",
}
}
}
#view方法 调用
from django_redis import get_redis_connection
conn = get_redis_connection("default")
from django.core.cache import cache
cache.set(userid, token, TIME_OUT)
使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
# 其他中间件...
'django.middleware.cache.FetchFromCacheMiddleware',
]
CACHE_MIDDLEWARE_ALIAS = ""
#超时时间
CACHE_MIDDLEWARE_SECONDS = ""
CACHE_MIDDLEWARE_KEY_PREFIX = ""
方式一:
from django.views.decorators.cache import cache_page
# 缓存 15分钟
@cache_page(60 * 15)
def my_view(request):
...
方式二:
from django.views.decorators.cache import cache_page
urlpatterns = [
url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
]
a. 引入TemplateTag
{% load cache %}
b. 使用缓存 5000秒
{% cache 5000 缓存key %}
缓存内容
{% endcache %}