redis 测试类

本文介绍了一种使用Java实现的Redis客户端连接池方法,并通过具体示例演示了如何操作Redis中的字符串、列表、集合、有序集合及哈希等数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.mochasoft.portal.common;


import redis.clients.jedis.JedisPool;  
import redis.clients.jedis.JedisPoolConfig;  
  
public class RedisClient {  
    private static final int MAX_ACTIVE = 20;  
  
    private static final int MAX_IDLE = 5;  
  
    private static final int MAX_WAIT = 1000;  
  
    private static final String HOST = "10.1.57.96";  
  
    private static final int PORT = 6379;  
  
    private static JedisPool jedisPool;  
  
    private RedisClient() {  
    }  
  
    /** 
     * 初始化非切片池 
     */  
    private static void initialPool() {  
        // 池基本配置  
        JedisPoolConfig config = new JedisPoolConfig();  
        config.setMaxActive(MAX_ACTIVE);  
        config.setMaxIdle(MAX_IDLE);  
        config.setMaxWait(MAX_WAIT);  
        jedisPool = new JedisPool(config, HOST, PORT);  
    }  
  
  
    public static JedisPool getJedis() {  
        if (jedisPool == null) {  
            synchronized (RedisClient.class) {  
                if (jedisPool == null) {  
                    initialPool();  
                }  
            }  
        }  
        return jedisPool;  
    }  
  

}  






package com.mochasoft.portal.common;


import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.HashSet;  
import java.util.Iterator;  
import java.util.List;  
import java.util.Map;  
import java.util.Map.Entry;  
import java.util.Set;  
  
import redis.clients.jedis.Jedis;  
import redis.clients.jedis.JedisPool;  
  
public class RedisTest {  
    public static void main(String[] args) {  
        JedisPool jedisPool = RedisClient.getJedis();  
        Jedis jedis = jedisPool.getResource();  
        jedis.select(10);  
        try {  
            System.out.println("testString=================begin");  
            testString(jedis);  
            System.out.println("testString=================end");  
            System.out.println("testList=================begin");  
            testList(jedis);  
            System.out.println("testList=================end");  
            System.out.println("testSet=================begin");  
            testSet(jedis);  
            System.out.println("testSet=================end");  
            System.out.println("testSortedSet=================begin");  
            testSortedSet(jedis);  
            System.out.println("testSortedSet=================end");  
            System.out.println("testHash=================begin");  
            testHash(jedis);  
            System.out.println("testHash=================end");  
        }  
        catch (Exception e) {  
            e.printStackTrace();  
        }  
        finally {  
            jedisPool.returnResource(jedis);  
        }  
    }  
  
    private static void testString(Jedis jedis) {  
        String key = "test:string:a";  
        // 为了保持多次测试结果一样,每次开始时都删除  
        jedis.del(key);  
        String value = "hello redis";  
        jedis.set(key, value);  
        String val = jedis.get(key);  
        System.out.println(val);  
        // 结果:hello redis  
    }  
  
    private static void testList(Jedis jedis) {  
        String key = "test:list:a";  
        // 为了保持多次测试结果一样,每次开始时都删除  
        jedis.del(key);  
        List<String> values = new ArrayList<String>();  
        for (int i = 0; i < 10; i++) {  
            char c = (char) (65 + i);  
            values.add(String.valueOf(c));  
        }  
        
        System.out.println("values>>>>>>>>>>>"+values);
        for (int i = 0; i < values.size(); i++) {  
            jedis.lpush(key, values.get(i));  
        }  
        List<String> val = jedis.lrange(key, 0, -1);  
        System.out.println(val);  
        // 结果:[J, I, H, G, F, E, D, C, B, A]  
    }  
  
    private static void testSet(Jedis jedis) {  
        String key = "test:set:a";  
        // 为了保持多次测试结果一样,每次开始时都删除  
        jedis.del(key);  
        Set<String> values = new HashSet<String>();  
        for (int i = 0; i < 10; i++) {  
            char c = (char) (65 + i);  
            values.add(String.valueOf(c));  
        }  
        Iterator<String> ite = values.iterator();  
        while (ite.hasNext()) {  
            String value = ite.next();  
            jedis.sadd(key, value);  
        }  
        Set<String> val = jedis.smembers(key);  
        System.out.println(val);  
        // 结果:[D, E, F, G, A, B, C, H, I, J]  
    }  
  
    private static void testSortedSet(Jedis jedis) {  
        String key = "test:sortedset:a";  
        // 为了保持多次测试结果一样,每次开始时都删除  
        jedis.del(key);  
        String[] values = { "C", "B", "G", "D", "d" };  
        jedis.zadd(key, 10, "E");  
        for (int i = 0; i < values.length; i++) {  
            jedis.zadd(key, i + 10, values[i]);  
        }  
        jedis.zadd(key, 10, "F");  
        Set<String> val = jedis.zrange(key, 0, -1);  
        System.out.println(val);  
        // 结果:[C, E, F, B, G, D, d]  
    }  
  
    private static void testHash(Jedis jedis) {  
        String key = "test:hash:a";  
        // 为了保持多次测试结果一样,每次开始时都删除  
        jedis.del(key);  
        Map<String, String> values = new HashMap<String, String>();  
        for (int i = 0; i < 10; i++) {  
            String s = String.valueOf((char) (i + 'A'));  
            values.put(s, s + "_val");  
        }  
        Iterator<Entry<String, String>> ite = values.entrySet().iterator();  
        while (ite.hasNext()) {  
            Entry<String, String> entry = ite.next();  
            String k = entry.getKey();  
            String v = entry.getValue();  
            jedis.hset(key, k, v);  
        }  
        Map<String, String> val = jedis.hgetAll(key);  
        System.out.println(val);  
        // 结果:{D=D_val, E=E_val, F=F_val, G=G_val, A=A_val, B=B_val, C=C_val,  
        // H=H_val, I=I_val, J=J_val}  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值