redis -- 首先就不做簡介啦,直接上**和功能
首先我們有乙個長度不定的佇列takslist用於接收所有的任務,然後有乙個定長的執行任務佇列runningtask用於控制正在執行的執行緒個數(3個)
1、模擬乙個生產者程序,用於不斷地產生任務
/**
* redis生產者程序
* yufeng on 2018/1/22
* 優先順序高的程序lpush-在棧頂,優先順序低的程序rpush-在棧底;pop採用lpop,每次只取棧頂元素,
* 再建立乙個map棧滿三個的時候ltrim清空即可
*/public class producer implements runnable
}catch (exception e)}}
}
2、模擬乙個消費者程序,用於不斷地完成任務,相當於執行緒執行完畢
/**
* redis消費者程序
利用AOP實現redis快取
1.定義註解 target elementtype.method 作用位置 retention retentionpolicy.runtime 什麼時候有效 public inte ce cachefind 2.使用註解 在方法上使用這個註解 override cachefind key iten ...
使用redis的zset實現簡單的延時佇列
一 需求切入點 在公司做的乙個系統業務需要有個定時提醒的功能 資料在mysql中 要求提醒的時間差精準到分鐘 解決方案有 使用定時器,每分鐘執行一次,查符合提醒的資料,發起提醒 資料庫連線與系統的負載都承受不住的!將待提醒資料提前查出存進redis中,根據提醒時間設定過期時間,做redis的過期監聽...
利用redis實現使用者簽到
很多 都提供了簽到功能 這裡不考慮資料落地事宜 並且需要展示最近乙個月的簽到情況,如果使用bitmap我們怎麼做?一言不合亮 redis new redis redis connect 127.0.0.1 使用者uid uid 1 記錄有uid的key cachekey sprintf sign d...