利用redis佇列儲存最後進入的3個人

2021-08-10 13:00:08 字數 729 閱讀 4773

朋友去一家公司面試,面試官問他乙個問題怎麼利用redis儲存最後進入直播間的3個人

朋友沒有答上來 過來問我

我第一時間就是利用佇列先進先出的特性,佇列控制在3個長度每乙個使用者進來直播間的時候 右邊插入該使用者的id 如果超過3個長度就在左邊去掉先前使用者的id,這樣可以保證只儲存最後3個進入佇列的資料

<?php

error_reporting(e_all);

ini_set('display_errors','on');

$driver = new redis();

$driver->connect('127.0.0.1',6379);

$driver->select(1);

$driver->delete('lastthreeuserlist');

for ($i = 0;$i

<= 10;$i++)

$data = $driver->lrange('lastthreeuserlist',0,100);

function

addlastthreeuserlist

(redis $driver,$userid)

else

}

output

array(3) " [1]=> string(13) "" [2]=> string(14) "" }

利用redis實現定長的執行緒佇列

redis 首先就不做簡介啦,直接上 和功能 首先我們有乙個長度不定的佇列takslist用於接收所有的任務,然後有乙個定長的執行任務佇列runningtask用於控制正在執行的執行緒個數 3個 1 模擬乙個生產者程序,用於不斷地產生任務 redis生產者程序 yufeng on 2018 1 22...

php利用redis實現訊息佇列解析

php redis訊息佇列是php mysql效能不足時的乙個中間間處理方案。通過這個中間的處理,保證的資料的可用性和準確性。用於伺服器瞬間請求大,資料庫壓力大的情況。如併發量大導致的超賣 併發量大導致的資料重複情況。流程 php接受請求和資料 php把資料寫入redis佇列中 入隊 shell定時...

PHP中利用redis實現訊息佇列處理高併發請求

將請求存入redis 為了模擬多個使用者的請求,使用乙個for迴圈替代 redis資料入隊操作 redis new redis redis connect 127.0.0.1 6379 for i 0 i 50 i catch exception e 在後台進行資料處理 守護程序 redis資料出隊...