简单队列缓存

Posted huangtao1927

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单队列缓存相关的知识,希望对你有一定的参考价值。

public enum SequenceEnum 
    SEQUENCE;

    SequenceEnum() 
    

    private static final ConcurrentLinkedQueue<String> cache = new ConcurrentLinkedQueue<>();

    private static final ReentrantLock lock = new ReentrantLock();

    /**
     *
     * 出队
     */
    public String poll() 
        try 
            lock.lock();
            if (cache.size() < 100) 
                //必须调用其他方法增加队列数量
                offer(SequenceUtil.getSequenceArray());
            
         catch (Exception e) 
            e.printStackTrace();
         finally 
            lock.unlock();
        
        return cache.poll();
    
    /**
     *
     * 入队
     */
    public void offer(String[] sequenceArray) 
        for (String sequence : sequenceArray) 
            cache.add(sequence);
        
    

    /**
     *
     * 队列数量太大,不可使用,因为遍历整个队列,耗时过长
     */
    public int size() 
        return cache.size();
    

    /**
     *
     * 判空使用此方法
     */
    public boolean isEmpty()
        return cache.isEmpty();
    

 

以上是关于简单队列缓存的主要内容,如果未能解决你的问题,请参考以下文章

高并发简单解决方案redis队列缓存 + mysql 批量入库 + php离线整合

转载:高并发简单解决方案 | 靠谱崔小拽 redis队列缓存 + mysql 批量入库 + php离线整合

-一个简单的数据缓存解决方案

简单实现Redis缓存中的排序功能

简单易用的消息队列框架的设计与实现

Redis_05_Redis发布订阅(Pub/Sub)