管理工具和java操作redis

第一步 下载好redis和管理工具

为了方便下载,我这里分享了自己的工具,百度链接:http://pan.baidu.com/s/1qYfQlsS 密码:kgxk
我这是redis 3.0.1 win64版的,目录结构如下:
这里写图片描述

第二步 双击redis-server.exe启动redis,默认本地IP,端口6379 界面如下:

这里写图片描述

然后安装好redis管理工具(RedisDesktopManager),并打开如图:

这里写图片描述

当然左边的redis连接列还没有,还得建立连接。

点击add New Connection,添加刚刚启动的redis连接 。如图:

这里写图片描述

给要连接的redis一个名称,然后ip 可以是localhost或127.0.0.1,端口6379。若给redis设置过密码,则需要填写Auth,然后ok就好了,左边会显示你已连接的redis。
比如点开redis1,展开redis1的数据,目前只存了db0,点击具体数据项后右边显示具体数据,可修改删除。如图:

这里写图片描述

第三步 java操作redis

java操作redis,需要导入jedis.jar 包,我上传了jedis-2.4.2.jar。代码上和jdbc也差不太多,下面我就直接贴代码了:

package redis;

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

/** 
 *  取redis 连接池 
 */  
public class RedisClientPool{  
 public static RedisClientPool redisClientPool = getInstance();  

    public static JedisPool jedisPool;  

    public static synchronized RedisClientPool getInstance()  
    {  
        if (null == redisClientPool){  
            redisClientPool = new RedisClientPool();  
        }  
        return redisClientPool;  
    }  

    public RedisClientPool(){  
        if (null == jedisPool){  
            init();  
        }  
    }  

    /** 
     *   初始化Jedis 
     * <一句话功能简述> 
     * <功能详细描述> 
     * @return 
     * @see [类、类#方法、类#成员] 
     */  
    private static JedisPoolConfig initPoolConfig(){ 
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();  
        // 控制一个pool最多有多少个状态为idle的jedis实例
        jedisPoolConfig.setMaxIdle(1000);  
        // 最大能够保持空闲状态的对象数  
        jedisPoolConfig.setMaxIdle(300);  
        // 超时时间  
        jedisPoolConfig.setMaxWaitMillis(1000);  
        // 在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的;  
        jedisPoolConfig.setTestOnBorrow(true);  
        // 在还会给pool时,是否提前进行validate操作  
        jedisPoolConfig.setTestOnReturn(true);  

        return jedisPoolConfig;
    }  

    /** 
     * 初始化jedis连接池 
     */  
    public static void init(){  
        JedisPoolConfig jedisPoolConfig = initPoolConfig(); 

        String host = "localhost";  
        int port = 6379;
        int timeout = 100000;
        //String password = "@caoyn";
        // 构造连接池  
        jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout);
    }

    public static void main(String[] args) {
        RedisClientPool redisClientPool1 = getInstance();  
        redisClientPool1.jedisPool.getResource().append("name", "曹大达");
        System.out.println("已缓存成功");
    }
}

下面直接使用redis连接池:

package redis;
import redis.RedisClientPool;
import java.util.List;  
import java.util.Map;  
import java.util.concurrent.ConcurrentHashMap;  

import redis.clients.jedis.Jedis;

/** 
 *  redis 操作api 

 */  
public class RedisClient   
{  
    /** 
     *  保存数据   类型为 Map 
     * <一句话功能简述> 
     * <功能详细描述> 
     * @param flag 
     * @param mapData 
     * @see [类、类#方法、类#成员] 
     */  
    public static void setMapDataToRedis(String flag,Map<String,String> mapData)  
    {         
        Jedis redisClient = null;  
        try  
        {  
            redisClient = RedisClientPool.jedisPool.getResource();  
            redisClient.hmset(flag,mapData);  
        }   
        catch (Exception e)  
        {  
            // 销毁对象  
            RedisClientPool.jedisPool.returnBrokenResource(redisClient);  
        }  
        finally  
        {  
            // 还原到连接池  
            RedisClientPool.jedisPool.returnResource(redisClient);  
        }  
    }  

    /** 
     *  保存数据   类型为 key-value 
     * <一句话功能简述> 
     * <功能详细描述> 
     * @param flag 
     * @param field 
     * @param value 
     * @see [类、类#方法、类#成员] 
     */  
    public static void setDataToRedis(String flag,String field,String value)  
    {  
        Jedis redisClient = null;  
        try  
        {  
            redisClient = RedisClientPool.jedisPool.getResource();  
            redisClient.hset(flag, field, value);  
        }   
        catch (Exception e)  
        {  
            // 销毁对象  
            RedisClientPool.jedisPool.returnBrokenResource(redisClient);  
        }  
        finally  
        {  
            // 还原到连接池  
            RedisClientPool.jedisPool.returnResource(redisClient);  
        }  
    }  

    /** 
     *  获取Map数据 
     * <一句话功能简述> 
     * <功能详细描述> 
     * @param flag 
     * @return 
     * @see [类、类#方法、类#成员] 
     */  
    public static Map<String,String> getMapData(String flag)  
    {  
        Map<String,String> dataMap = null;  

        Jedis redisClient = null;  
        try  
        {  
            redisClient = RedisClientPool.jedisPool.getResource();  
            dataMap = redisClient.hgetAll(flag);  
        }   
        catch (Exception e)  
        {  
            // 销毁对象  
            RedisClientPool.jedisPool.returnBrokenResource(redisClient);  
        }  
        finally  
        {  
            // 还原到连接池  
            RedisClientPool.jedisPool.returnResource(redisClient);  
        }  
        return dataMap;  
    }  

    public static long deleteData(String flag)  
    {  
        long result = 0;  
        Jedis redisClient = null;  
        try  
        {  
            redisClient = RedisClientPool.jedisPool.getResource();  
            result = redisClient.del(flag);  
        }   
        catch (Exception e)  
        {  
            // 销毁对象  
            RedisClientPool.jedisPool.returnBrokenResource(redisClient);  
        }  
        finally  
        {  
            // 还原到连接池  
            RedisClientPool.jedisPool.returnResource(redisClient);  
        }  

        return result;  
    }  

    /** 
     * 根据key和字段获取数据  
     * <一句话功能简述> 
     * <功能详细描述> 
     * @param flag 
     * @param field 
     * @return 
     * @see [类、类#方法、类#成员] 
     */  
    public static String getData(String flag,String field)  
    {  
        String data = null;  
        Jedis redisClient = null;  
        try  
        {  
            redisClient = RedisClientPool.jedisPool.getResource();  
            data = redisClient.hget(flag, field);  
        }   
        catch (Exception e)  
        {  
            // 销毁对象  
            RedisClientPool.jedisPool.returnBrokenResource(redisClient);  
        }  
        finally  
        {  
            // 还原到连接池  
            RedisClientPool.jedisPool.returnResource(redisClient);  
        }  

        return data;  
    }  


    public static void main(String[] args)  throws Exception{           
        RedisClient.testMap();    
    }    


    public static void testList()  
    {    
       Jedis redis = RedisClientPool.jedisPool.getResource();  
        //hset key field value将哈希表key中的域field的值设为value。   
        redis.hset("table", "field1", "value1");   
        redis.hset("table", "field2", "value2");   
        redis.hset("table", "field3", "value3");   
        //返回哈希表key中,一个或多个给定域的值。   
        List<String> list = redis.hmget("table","field1","field2","field3");   
        for(String tmp : list)  
        {   
            System.out.println(tmp);   
        }   
    }  

    public static void testMap()  
    {  
        //同时将多个field - value(域-值)对设置到哈希表key中。   
        Map<String,String> map = new ConcurrentHashMap<String,String>();  
        for (int i = 0;i < 10000;i++){  
            map.put("field"+i, "value"+i);   
        }  
        if (null != getData("table", "field1")){  
            deleteData("table");  
        }  
        //得到map下面的username的值   
        Map<String,String> maps = getMapData("table");  
        System.out.println(maps.size());  

        setMapDataToRedis("table",map);  

        //HGETALL key返回哈希表key中,所有的域和值。   
        maps = getMapData("table");   

        System.out.println(maps.size());  
    }  

}  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值