redis實戰 文章投票

2021-09-28 18:50:38 字數 3060 閱讀 9874

zset儲存文章發布時間

zset儲存文章得分

set集合儲存每一篇文章的投票的使用者

vote:110

user:1

user:2

需要將文章屬性以map集合的形式傳入到hash結構中,之後在對應score與time新增當前文章

// 發布文章

public

static string postarticle

(jedis conn, string user, string link, string title)

// 投票

public

static

void

articlevote

(jedis conn, string user, string article)

string articleid = article.

substring

(article.

indexof

(":")+

1);if

(conn.

sadd

("voted:"

+ articleid, user)==1

)}

設定引數,每一次獲取指定數量的文章,

由於需要滿足文章點讚排名,此時就需要去根據分數從大到小排序(zrevrange實現),之後根據返回的article,在has**章結構中找到對應文章屬性。

public

static list

>

getarticle

(jedis conn,

int page)

// 獲取文章資訊

public

static list

>

getarticle

(jedis conn,

int page, string order)

return list;

}

// 群組刪除功能

public

static

void

delgroup

(jedis conn, string articleid, string[

] groups)}}

// 得到群組文章

public

static list

>

getgrouparticle

(jedis conn, string group,

int page)

public

static list

>

getgrouparticle

(jedis conn, string group,

int page, string order)

return

getarticle

(conn, page, key)

;// 找到群組裡排序後的文章

}

// 列印文章

public

static

void

printarticle

(list

> articlelist)

else

} system.out.

println()

;}}

public

static

final

int week_time =7*

86400

;public

static

final

int var_voted =

432;

public

static

final

int per_page =25;

public

static

void

main

(string[

] args)

public

static

void

run(

) system.out.

println

(" ");

system.out.

println()

;articlevote

(jedis,

"other_user"

,"article:"

+ articleid)

; string votes = jedis.

hget

("article:"

+ articleid,

"votes:");

system.out.

println

("當前文章獲取票數votes:"

+ votes)

;assert integer.

parseint

(votes)

>1;

system.out.

println

(" ");

system.out.

println

("最高分數分組展示");

list

> list =

getarticle

(jedis,1)

;printarticle

(list)

;assert list.

size()

>1;

system.out.

println

("分組展示功能");

addgroup

(jedis, articleid,

newstring

);list

> list2 =

getgrouparticle

(jedis,

"newgroup",1

);printarticle

(list2)

;assert list2.

size()

>1;

}

golang使用redis對文章進行投票

最近在學redis,本人菜鳥.是過程式的,沒考慮優化.就是發篇文章記錄一下.感覺redis還是很強大的.評分 支援票數 86400 200 時間戳,文章獲得為200票就可以在首頁展示一天,隨著時間的流逝,當分數小於當前時間戳的時候,就從首頁撤下.使用兩個有序集合來有序的儲存文章 第乙個有序集合的成員...

redis投票計數

快取利用測試,這裡我們獲取傳過來的投票資料,每次加1,如果增加到了設定值,才將投票 次數寫回mysql,這大大減輕了與mysql鏈結的開銷,redis的使用由此可見一斑 var unknown type 來自 www.crazyant.net和www.51projob.com 獲取投票的資訊的id ...

redis實戰 4 發布並獲取文章

發布文章要建立乙個id,可以通過計數器counter執行incr命令來完成。接著使用sadd將文章發布者的id新增到記錄文章已投票使用者名單的集合裡面,並使用expire為該集合設定過期時間 一周 之後,使用hmset來儲存文章相關資訊,並執行兩個zadd,將文章的初始評分和發布時間分別存入對應的有...