新聞中心
redis怎么緩存用戶列表,做到可以分頁(yè)展示?

普通分頁(yè)
一般分頁(yè)做緩存都是直接查找出來(lái),按頁(yè)放到緩存里,但是這種緩存方式有很多缺點(diǎn)。
如緩存不能及時(shí)更新,一旦數(shù)據(jù)有變化,所有的之前的分頁(yè)緩存都失效了。
比如像微博這樣的場(chǎng)景,微博下面現(xiàn)在有一個(gè)頂次數(shù)的排序。這個(gè)用傳統(tǒng)的分頁(yè)方式很難應(yīng)對(duì)。
一種思路
最近想到了另一種思路。
數(shù)據(jù)以ID為key緩存到Redis里;
把數(shù)據(jù)ID和排序打分存到Redis的skip list,即zset里;
當(dāng)查找數(shù)據(jù)時(shí),先從Redis里的skip list取出對(duì)應(yīng)的分頁(yè)數(shù)據(jù),得到ID列表。
用multi get從redis上一次性把ID列表里的所有數(shù)據(jù)都取出來(lái)。如果有缺少某些ID的數(shù)據(jù),再?gòu)臄?shù)據(jù)庫(kù)里查找,再一塊返回給用戶,并把查出來(lái)的數(shù)據(jù)按ID緩存到Redis里。redis緩存是什么?
Redis緩存是一個(gè)開源的使用ANSIC語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。
為了運(yùn)行一個(gè)優(yōu)化熱門查詢性能的Redis緩存,首先應(yīng)確定你希望緩存的查詢結(jié)果。其中,應(yīng)重點(diǎn)關(guān)注最常用的和最耗時(shí)的查詢,然后確定應(yīng)緩沖查詢中的數(shù)據(jù)。為簡(jiǎn)便起見,緩存查詢返回的所有列值。如何在django中使用redis做緩存服務(wù)器?
實(shí)現(xiàn)緩存的方式,有多種,本地內(nèi)存緩存,數(shù)據(jù)庫(kù)緩存,文件系統(tǒng)緩存。這里介紹使用Redis數(shù)據(jù)庫(kù)進(jìn)行緩存。
環(huán)境
redis
django-redis
配置
settings.py
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "mysecret"
}
}
}
本文題目:redis怎么緩存用戶列表,做到可以分頁(yè)展示?(redis服務(wù)器如何看緩存)
標(biāo)題來(lái)源:http://www.5511xx.com/article/dhihcdh.html


咨詢
建站咨詢
