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>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()); } }
redis - String字符串操作
猜你喜欢
转载自yuzhi2217.iteye.com/blog/2063953
今日推荐
周排行