package ddd;
import java.util.List;
import redis.clients.jedis.Jedis;
public class String_Redis {
/**
* Redis 字符串型号
* @param args
*/
public static void main(String[] args) {
Jedis je=new Jedis("127.0.0.1",6379,60000);
je.auth("ycm12345");
/**
* 将字符串值 value 关联到 key 。
如果 key 已经持有其他值,SET 就覆写旧值,无视类型。
*/
je.set("key001", "0");
/**
* 将 key 的值设为 value ,当且仅当 key 不存在。
若给定的 key 已经存在,则SETNX 不做任何动作。
*/
je.setnx("key001", "新的值,若己经存在,不在存入");
//为IP 加上1
je.incr("key001");
System.out.println(je.get("key001"));
//再加 15,结果为16
je.incrBy("key001", 15);
System.out.println(je.get("key001"));
//------不是数字时,报错-----------
//ERR value is not an integer or out of range
je.set("key001","not the num");
//je.incr("key001");
System.out.println("---------------------------------");
//如果 key 已经存在并且是一个字符串,APPEND 命令将 value 追加到 key 原来的值的末尾
//如果 key 不存在,APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
je.append("k01", "ap1");
System.out.println(je.get("k01"));
je.append("k01".getBytes(), " is me".getBytes());
System.out.println(new String(je.get("k01").getBytes()));
System.out.println("---------------------------------");
//返回所有 (一个或多个) 给定 key 的值。
//如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
List<String> list=je.mget("k01","key001");
for(String s:list){
System.out.println(s);
}
System.out.println("---------------------------------");
/**
*同时设置一个或多个 key-value 对。
如果某个给定 key 已经存在,那么MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑
使用MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
*/
je.mset("k01","我是新K01","key001","我是key001");
list=je.mget("k01","key001");
for(String s:list){
System.out.println(s);
}
System.out.println("---------------------------------");
/**
* 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
即使只有一个给定 key 已存在,MSETNX 也会拒绝执行所有给定 key 的设置操作。
*/
je.msetnx("k01","我是新K02dd","key001","我是key002dd","k02","新k02");
list=je.mget("k01","key001","k02");
for(String s:list){
System.out.println(s);
}
System.out.println("---------------------------------");
/**
* 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
* SETEX
*/
je.setex("kk01", 1, "1秒钟后失效");
/**
* 这个命令和SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间
*/
je.psetex("k03", 10, "失效20毫秒");
System.out.println(je.get("k03"));
try{
//休眠30毫秒
Thread.currentThread().sleep(30);
}catch(Exception ex){
}
//己经失效,找不到了
System.out.println(je.get("k03"));
System.out.println("---------------------------------");
/**
* 返回 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
*/
System.out.println(je.strlen("k01"));
}
}
Redis(2.6版本以上) String 常用操作和方法详解
最新推荐文章于 2016-10-06 11:29:53 发布