缓存redis 配置

缓存的配置: 在Django的setting中:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://your_host_ip:6379',
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
             # "PASSWORD": "yoursecret",
        },
    },
}

# REDIS_TIMEOUT=7*24*60*60
# CUBES_REDIS_TIMEOUT=60*60
# NEVER_REDIS_TIMEOUT=365*24*60*60

 

from django.core.cache import cache #引入缓存模块
cache.set('v', '555', 60*60)      #写入key为v,值为555的缓存,有效期30分钟
cache.has_key('v') #判断key为v是否存在
cache.get('v')     #获取key为v的缓存

一个小例子:

def api(func):
    @functools.wraps(func)
    # 为什么使用functools.wraps
    # https://blog.csdn.net/tiwoo/article/details/50835337
    def _deal_with(*args, **kwargs):
        response_data = demjson.encode(func(*args, **kwargs))
        response = HttpResponse(response_data, content_type="application/json")
        response["Access-Control-Allow-Origin"] = "*"
        response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
        response["Access-Control-Max-Age"] = "1000"
        response["Access-Control-Allow-Headers"] = "*"
        return response
    return _deal_with

@api
def get_singers(request):
    page = request.GET.get('page', '1')
    page = int(page) if page.isdigit() else 1
    size = 20
        if not cache.has_key('singers.txt'):
        url = "http://artistlistinfo.kuwo.cn/mb.slist?stype=artistlist&category=0&order=hot&pn=0&rn=100&encoding=utf8"
        response = requests.get(url)
        json_str = response.text
        cache.set('singers.txt', json_str, 60 * 60)
    else:
        json_str = cache.get('singers.txt')
    json_obj = demjson.decode(json_str)
    artistlist = json_obj.get('artistlist', None)
    for artist in artistlist:
        artist['pic'] = 'http://img1.sycdn.kuwo.cn/star/starheads/' + artist.get("pic")
    # 分页
    artist_dict = {
        "artistlist": artistlist[(page-1)*size: page*size]
    }
    return artist_dict

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值