django使用redis做缓存(非django-redis模块)

昨天面试去面试官问redis的主要作用是什么
我回答:是做队列进行统一资源调度
结果面试官看了我一眼说:redis主要是用来做缓存的
当时别提多尴尬
回来以后再django下写了一个简单的redis缓存代码

 #查看redis 中是否有a开头的数据, 如果没有则去mysql中取  取到以后再放到缓存中
 pool = redis.ConnectionPool(host="127.0.0.1", port=6379,decode_responses=True)
 r = redis.Redis(connection_pool=pool)
 News=[]
    res=r.keys('a*')
    for z in res:
        #print(r.hgetall(z))
        temp=r.hgetall(z)
        #print(r.hget(z, b'goodsname'))  # 输出:bb
        if temp:
            #h1 = str(temp, encoding='utf-8')
            News+=temp
    if News:
        return render(request, 'myhome/index.html', {'navdata': data, 'news': News})
    else:
        News=Goods.objects.filter(cateid_id=tab)
        News_cache={}
        #存入redis, 如果必要写入有效时间
        for i in News:
            #print(i.id)
            News_cache={'id':str(i.id),'pic_url':str(i.pic_url),'goodsname':str(i.goodsname),'addtime':str(i.addtime)}
            #print(type(News_cache))
            r.hmset('a'+str(i.id), News_cache)

       	 return render(request,'myhome/index.html',{'navdata':data,'news':News})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值