4.Jedis常用操作

Jedis 常用操作

/**
 * <strong>Jedis 常用操作</strong>
 */
public class RedisTest {

   public static Jedis getJedis(){  
    Jedis jedis = new Jedis("localhost", 6379);  //redis服务器的ip和端口
    //jedis.auth("");//密码
    jedis.select(0);
    return jedis;
    }
    
     /**  
     * <strong>Key</strong>
     */  
    @Test
    public void demoKey(){  
        Jedis jedis = RedisCRUD.getJedis();
        System.out.println("键aa是否存在:" + jedis.exists("aa"));  
        System.out.println("键aa的类型:" + jedis.type("aa"));  
        System.out.println("随机获得一个key:" + jedis.randomKey());  
        System.out.println("将aa重命名为bb:"+jedis.rename("aa", "bb"));//没有aa会报错
        System.out.println("删除bb:"+jedis.del("bb"));
        System.out.println(jedis.keys("*"));//当前库下的所有key
    }  
    
    /**
     * <strong>String</strong>
     */
    @Test
    public void demoString(){
    Jedis jedis = RedisCRUD.getJedis();
    System.out.println("设置name:" + jedis.set("name", "太阳"));  
        System.out.println("设置name1:" + jedis.set("name1", "太阳1"));  
        System.out.println("设置name2:" + jedis.set("name2", "太阳2"));  
        System.out.println("设置name,如果存在返回0:" + jedis.setnx("name", "太阳月亮")); //TODO
        System.out.println("获取key为name和name1的value值:" + jedis.mget("name", "name1"));  
        System.out.println("自增1:" + jedis.incr("index"));  
        System.out.println("自增1:" + jedis.incr("index"));  
        System.out.println("自增2:" + jedis.incrBy("count", 2));  
        System.out.println("自增2:" + jedis.incrBy("count", 2));  
        System.out.println("递减1:" + jedis.decr("count"));  
        System.out.println("递减2:" + jedis.decrBy("index", 2));  
        System.out.println("在name后面添加String:"+jedis.append("name", ",星星"));  
        System.out.println("获取key为name的value值:" + jedis.get("name"));
        
        System.out.println("键key是否存在:" + jedis.exists("key"));  
        jedis.set("key", "aa", "bb");//如果不存在,设置默认值
    }
    
     /**  
     * <strong>list</strong>
     * http://www.cnblogs.com/stephen-liu74/archive/2012/03/16/2351859.html
     * 主要的就是(lr)pop/()lrpush就决定了它能够左(右)插入右(左)取出,即可做队列又可做堆栈来用
     */  
    @Test
    public void demoList(){  
        Jedis jedis = RedisCRUD.getJedis();
        jedis.del("list");
        //在头添加  
        jedis.lpush("list", "hadoop", "hbase", "hive", "pig", "zookeeper");//TODO 好像有错
        //在末尾添加  
        jedis.rpush("list", "java");  
        //返回长度  
        jedis.llen("list");
        //取值  
        List<String> list = jedis.lrange("list", 0, -1);  
        for (String string : list) {  
            System.out.println(string);  
        }
    }  
    
    /**  
     * <strong>set </strong> 
     * http://www.cnblogs.com/stephen-liu74/archive/2012/02/15/2352512.html
     * 可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。
     * 对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性。
     */  
    @Test
    public void demoSet(){  
        Jedis jedis = RedisCRUD.getJedis();
        
        jedis.sadd("city1", "北京","上海","重庆","天津");  
        System.out.println("取出最上面的:" + jedis.spop("city1"));//随机的移除并返回Set中的某一成员
        System.out.println("随机取出一个值:" + jedis.srandmember("city1"));//和SPOP一样,随机的返回Set中的一个成员,不同的是该命令并不会删除返回的成员。  
        jedis.sadd("city2", "北京","上海","广州","深圳");
        System.out.println("交集:"+ jedis.sinter("city1", "city2"));  
        System.out.println("并集:"+ jedis.sunion("city1", "city2"));  
        System.out.println("差集:"+ jedis.sdiff("city1", "city2"));
    }  
    
    /**  
     * <strong>map</strong>
     * http://www.cnblogs.com/stephen-liu74/archive/2012/03/19/2352932.html
     */  
    @Test
    public void demoMap(){  
        Jedis jedis = RedisCRUD.getJedis();  
        jedis.hset("Mcity1", "c1", "北京");
        System.out.println("取值:" + jedis.hget("Mcity1", "c1"));  
        Map<String,String> mcity = new HashMap<String, String>();  
        mcity.put("c1", "桂林");  
        mcity.put("c2", "天津");  
        mcity.put("c3", "合肥");  
        jedis.hmset("Mcity2", mcity);  
        List<String> list =  jedis.hmget("Mcity2", "c1","c2","c3");  
        for (String string : list) {  
            System.out.println(string);  
        }  
        System.out.println(jedis.hlen("Mcity2"));  
    }  
    
    /**  
     * <strong>other</strong>
     * @throws InterruptedException
     */  
    @Test
    public void other() throws InterruptedException{  
        Jedis jedis = RedisTest.getJedis();  
        jedis.flushDB();//执行删除,在某个db环境下执行的话,只删除当前db的数据
        jedis.flushAll();//删除所有现有的数据库,而不仅仅是当前选择的一个的键。此命令不会失败。
        
        /*System.out.println("设置 key001的过期时间为5秒:" + jedis.expire("key001", 5));
        // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
        System.out.println("查看key001的剩余生存时间:" + jedis.ttl("key001"));
        // 移除某个key的生存时间
        System.out.println("移除key001的生存时间:" + jedis.persist("key001"));
        //将当前db的key移动到给定的db当中
        System.out.println("将当前db的key移动到给定的db当中:" + jedis.move("key001", 1));*/
        
        //SETEX:key seconds value,将值value关联到key,并将key的生存时间设为seconds(以秒为单位)
        System.out.println(jedis.setex("a", 3, "5-15,value"));   
        System.out.println(jedis.get("a"));
        Thread.sleep(4000);
        System.out.println(jedis.get("a"));
        
        //MSET:key value [key value ...]同时设置一个或多个key-value对。
        jedis.mset("aa","111","bb","222");
        
        //dbSize是多少个key的个数
        System.out.println(jedis.dbSize());
    }  
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值