2012-09-15 260 views
0

我想在Redis中實現以下系統,但我不確定如何去做,因爲我需要某種排隊系統。這是我的想法是:redis中的fifo

用戶A,B和C以下用戶X,因此對於用戶X檢查他的追隨者,我想用列表如下:

X [A, B, C] 

待辦事項你認爲這將是一個可行的解決方案?

如果這會是這樣,我仍然有「排隊」問題,說一個人只能跟着一個,如果用戶A選擇跟隨用戶Y,則該項目「A」應該從列表X.被刪除

這聽起來可能令人困惑:我不能很好地解釋,因爲我不是本地人。同樣重要的是要注意,這些操作的負載每秒都會發生,因此,Redis可以成爲這種操作的最佳選擇嗎?

在此先感謝。

回答

1

我不明白你需要排隊嗎?你可以用以下結構:

X:追隨者 - 是一套containig追隨者標識

X:如下 - 是用戶該用戶如下

當X位於Y之後的字符串containig ID你只是這樣做:

srem $(X:follows) X 
sadd Y:followers X 
set X:follows Y 
+0

我需要隊列,以便某個用戶不能超過,比如說5個人。當用戶跟隨​​其他人時,跟隨的第一個人得不到遵守。 –

+0

好的,那麼當然你可以使用帶* rpush *的列表作爲尾部的推送項目,* lpop *從頭部移除一個項目,* llen *獲取列表長度,或者使用jusr * ltrim *將修剪列表修改爲需要的長度。 – atomAltera

+0

是的,我在想的問題是關於性能。因爲通過這種方式,每次我跟隨其他人時,我都需要去另一個列表並從那裏移除自己,這是否會導致速度緩慢? –