用Redis快取Web網頁的分頁資料

2021-08-24 18:02:36 字數 1747 閱讀 3896

zset資料結構補充:

redis中存放資料都是將資料序列化放入記憶體中,所以將物件序列化有兩種方式:流序列和json

zadd(key,score,members)向key的鍵下面新增元素,排序方式預設是以score的字典公升序,score是double型別的值,不能傳錯了。這裡的key可以認為是指定 的乙個有序set,通過zset的操作可以自動更新有序set的排序

zrem(key,members)當匹配到key快取中有相同的members(字串)時,就刪除對應的記錄

zrange(key,start,end)獲取索引區間的成員(按分數排序)

1)[start,end]=[0,-1] -1比表示最後乙個元素的索引

zrange(key,0,-1)代表所有成員

2)end越界,顯示從start開始到最後乙個成員

3)start,end都越界,返回nil

zcard(key)獲取key快取中的所有元素的記錄條數

zscore(key,members)獲取對應members的score並返回,若不存在則返回null

zcard(key)獲取key快取中的所有元素的記錄

最後附上部分**(有點糙,,)

頁面初始化和分頁:

/*

* 使用redis有序set進行快取,可以進行排序

*/total = (long) redis.zcard(key);

if(total<=0)

int curruntindex=pagerequest.getpagenumber() * pagerequest.getpagesize();//分頁開始索引

int endindex=curruntindex+pagerequest.getpagesize()-1;//分頁結束索引

if(endindex>total)

//total = (long) redis.zcard(key);

sublist=redis.getpagecache(key,curruntindex,endindex);

page = service.findallbypageredis( searchparams.getsearchmap(), pagerequest, sublist,total);//返回頁面bean

對快取更新資料:

/*

* 對快取更新操作

* 先刪除匹配對的快取中的資料,在新增資料

*/liststudent=findbystudentno(entity.getstudentno());

member=gson.tojson(student.get(0));

if (redis.zscore(key, member)!=null)

member=gson.tojson(entity);

redis.zadd(key, long.valueof(entity.getstudentno()), member);

現就到這了,後續再有想法再來更

Redis快取網頁及資料行

在有些 上的首頁不會經常發生大的變化,這些頁面不需要每次載入都要動態生成的內容,我們可以使用快取來降低 處理相同負載所需的伺服器數量,並讓 的速度變得更快。flask redis使用快取頁面的功能 import redis from flask import flask,request index ...

關於用redis快取物件

我們知道redis可以儲存的資料結構比memcached多,它包含hash,list等等 但是如果,我有乙個person物件,裡面兩個變數,username,password,我想儲存乙個person物件呢?那很簡單呀,要麼使用pb把它序列化,要麼把物件轉成json字串 從速度上講pb要比json快...

用Redis作Mysql資料庫快取

使用redis作mysql資料庫快取時,需要考慮兩個問題 1 確定用何種資料結構儲存來自mysql的資料 2 在確定資料結構之後,用什麼標識作為該資料結構的鍵。直觀上看,mysql中的資料都是按表儲存的 更微觀地看,這些表都是按行儲存的。每執行一次select查詢,mysql都會返回乙個結果集,這個...