您的位置:首页 > 数据库 > Redis

redis - String字符串操作

2016-06-21 15:09 681 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。

中文命令参考手册

[java] view
plain copy

 print?

import java.util.List;  

  

import org.junit.After;  

import org.junit.Before;  

import org.junit.Test;  

  

import redis.clients.jedis.Jedis;  

  

  

/**  

 * jedis String 类型操作  

 * @author http://blog.csdn.net/java2000_wl  

 * @version <b&
4000
gt;1.0</b>  

 */    

public class RedisStringTest {  

  

    private Jedis jedis;  

      

    /** 

     * 初始化连接 

     * <br>------------------------------<br> 

     */  

    @Before  

    public void before() {  

        jedis = new Jedis("127.0.0.1");  

        jedis.auth("java2000_wl");  

    }  

      

    /** 

     * 断开连接 

     * <br>------------------------------<br> 

     */  

    @After  

    public void after() {  

        jedis.disconnect();  

    }  

      

    /** 

     * set 如果存在相同的key 覆盖旧值</br> 

     * 总是返回OK 

     * <br>------------------------------<br>  

     */  

    @Test  

    public void testSet() {  

        String result = jedis.set("blog", "java2000_wl");  

        print(result);  

        jedis.set("blog", "java2000_wl_new");  

        print(result);  

    }  

      

    /** 

     * setnx 如果key存在 不做任何操作  返回0, </br> 

     *         如果key不存在  设置值成功 返回1 

     * <br>------------------------------<br>  

     */  

    @Test  

    public void testSetnx() {  

        long result = jedis.setnx("blog1", "java2000_wl");  

        print(result);  

    }  

      

    /** 

     * setex 设置值  并指定键值对应的有效期  单位为秒</br> 

     * 如果key 存在 覆盖旧值  成功返回 OK 

     * <br>------------------------------<br>  

     */  

    @Test  

    public void testSetex() {  

        String result = jedis.setex("setex", 60, "setex_value");  

        print(result);  

    }  

      

    /** 

     * setrange 通过key 和  offset 替换value </br> 

     * 例如:setex - > setex_value    

     * jedis.setrange("setex", 6, "Setrange") 

     * </br>   

     * 替换为 setex_Setrange 

     * <br>------------------------------<br>  

     */  

    @Test  

    public void testSetrange() {  

        // setex_value  被替换为: setex_Setrange  

        long result = jedis.setrange("setex", 6, "Setrange");  

        print(result);  

        print(jedis.get("setex"));  

    }  

      

    /** 

     * mset 同时设置一个或多个 key-value对。 

     * 如果某个key-value 存在  会用新值覆盖原来的旧值, 总是成功, 成功返回OK 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testMset() {  

        String result = jedis.mset("key1", "value1", "key2", "value2", "key..", "value..");  

        print(result);  

    }  

      

    /** 

     * msetnx 同时设置一个或多个 key-value对。 

     * 如果某个key-value存在   返回0  所有操作都会回滚, 如果成功 返回ok 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testMsetnx() {  

        long result = jedis.msetnx("msetnxKey1", "msetnxValue1", "msetnxKey2", "msetnxValue2");  

        print(result);  

    }  

      

    /** 

     * get 通过key 获取对应的value  如果key不存在 返回nil 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testGet() {  

        String value = jedis.get("msetnxKey1");  

        print(value);  

    }  

      

    /** 

     * getset 通过key 获取对应的value 然后通过key 设置信的value 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testGetSet() {  

        String value = jedis.getSet("key1", "value_new");  

        print(value);  

          

        value = jedis.get("key1");  

        print(value);  

    }  

      

    /** 

     * 返回key对应的value  在由start 和 end 两个偏移量截取 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testGetrange() {  

        String value = jedis.getrange("key1", 6, 8);  

        print(value);  

    }  

      

    /** 

     * 返回多个key 对应的value 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testMget() {  

        List<String> list = jedis.mget("key1", "key2", "key3");  

        print(list);  

    }  

      

    /** 

     * 对key对应的value  做+1操作  返回+1后的新值 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testIncr() {  

        jedis.set("incr", "2");  

        // 返回33  

        Long result = jedis.incr("incr");  

        print(result);  

    }  

      

    /** 

     * 对key对应的value 加指定值 返回新值  如果key不存在 认为原来的value为0 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testIncrBy() {  

        jedis.set("incrBy", "2");  

        // 返回7  

        Long result = jedis.incrBy("incrBy", 5);  

        print(result);  

    }  

      

    /** 

     * 对key对应的value 做-1操作  返回新值 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testDecr() {  

        // 7 - 1  

        Long result = jedis.decr("incrBy");  

        print(result);  

    }  

      

    /** 

     * 对key对应的value 减去指定值  返回新值  如果key不存在    认为原来的value为0 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testDecrBy() {  

        Long result = jedis.decrBy("DecrBy", 5);  

        print(result);  

    }  

      

    /** 

     * 给指定的key的值追加, 返回新字符串的长度 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testAppend() {  

        // 追加前 value_new  

        String old = jedis.get("key1");  

        print(old);  

        // 追加后  value_new124  

        Long long1 =jedis.append("key1", "124");  

        print(long1);  

    }  

      

    /** 

     * 取得指定key的value值的长度 

     * <br>------------------------------<br> 

     */  

    @Test  

    public void testStlen() {  

        long len = jedis.strlen("key1");  

        print(len);  

    }  

      

    void print(Object object) {  

        System.out.println(object.toString());  

    }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: