1. 程式人生 > >jedis執行緒池的程式碼

jedis執行緒池的程式碼

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class Demo2 {

    private static JedisPool pool;

    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxActive(100);
        config.setMaxIdle(20);
        config.setMaxWait(1000);
        config.setTestOnBorrow(true);
        pool = new JedisPool(config, "192.168.12.93");
    }

    public static void main(String[] args) {
        Demo2 demo = new Demo2();
        demo.test();
    }

    public void test() {
        initInsert();
        //testThread();
    }

    private void initInsert() {
        System.out.println("demo2 插入資料開始");
        Jedis jedis = pool.getResource();
        for (int i = 0; i < 20000; i++){
            jedis.set(String.valueOf("lijian-key"+i), String.valueOf("lijian-value"+i));
        }
        pool.returnResource(jedis);
        System.out.println("demo2 插入資料結束");
    }

    private void testThread() {
        long begin = System.currentTimeMillis();

        Thread thread[] = new Thread[100];
        for (int i = 0; i < thread.length; i++) {
            thread[i] = new MyThread();
            thread[i].start();
        }

        for (int i = 0; i < thread.length; i++) {
            try {
                thread[i].join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

        long end = System.currentTimeMillis();
        System.out.println("執行緒執行時間是:" + (end - begin) + " ms");
    }

    class MyThread extends Thread {
        @Override
        public void run() {
            Jedis jedis = Demo2.pool.getResource();
            for (int i = 0; i < 20000; i++){
                System.out.println(jedis.get(String.valueOf(i)));
            }
            Demo2.pool.returnResource(jedis);
        }
    }

    public static JedisPool getPool() {
        return pool;
    }

    public static void setPool(JedisPool pool) {
        Demo2.pool = pool;
    }

}

注:需要匯入所依賴jar包才能執行

本例使用jedis-1.5.2.jar