|
Jedis操作redis
- packagecom.jedis;
- importjava.util.ArrayList;
- importjava.util.HashMap;
- importjava.util.Iterator;
- importjava.util.List;
- importjava.util.Map;
- importjava.util.Set;
- importredis.clients.jedis.Jedis;
- publicclassJedisDemo{
- publicvoidtest1(){
- Jedisredis=newJedis("192.168.10.64",6379);//连接redis
- redis.auth("redis");//验证密码
- /*-----------------------------------------------------------------------------------------------------------*/
- /**KEY操作
- //KEYS
- Setkeys=redis.keys("*");//列出所有的key,查找特定的key如:redis.keys("foo")
- Iteratort1=keys.iterator();
- while(t1.hasNext()){
- Objectobj1=t1.next();
- System.out.println(obj1);
- }
- //DEL移除给定的一个或多个key。如果key不存在,则忽略该命令。
- redis.del("name1");
- //TTL返回给定key的剩余生存时间(timetolive)(以秒为单位)
- redis.ttl("foo");
- //PERSISTkey移除给定key的生存时间。
- redis.persist("foo");
- //EXISTS检查给定key是否存在。
- redis.exists("foo");
- //MOVEkeydb将当前数据库(默认为0)的key移动到给定的数据库db当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定key,或者key不存在于当前数据库,那么MOVE没有任何效果。
- redis.move("foo",1);//将foo这个key,移动到数据库1
- //RENAMEkeynewkey将key改名为newkey。当key和newkey相同或者key不存在时,返回一个错误。当newkey已经存在时,RENAME命令将覆盖旧值。
- redis.rename("foo","foonew");
- //TYPEkey返回key所储存的值的类型。
- System.out.println(redis.type("foo"));//none(key不存在),string(字符串),list(列表),set(集合),zset(有序集),hash(哈希表)
- //EXPIREkeyseconds为给定key设置生存时间。当key过期时,它会被自动删除。
- redis.expire("foo",5);//5秒过期
- //EXPIREATEXPIREAT的作用和EXPIRE一样,都用于为key设置生存时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unixtimestamp)。
- //一般SORT用法最简单的SORT使用方法是SORTkey。
- redis.lpush("sort","1");
- redis.lpush("sort","4");
- redis.lpush("sort","6");
- redis.lpush("sort","3");
- redis.lpush("sort","0");
- Listlist=redis.sort("sort");//默认是升序
- for(inti=0;i<list.size();i++){
- System.out.println(list.get(i));
- }
- */
- /*-----------------------------------------------------------------------------------------------------------*/
- /**STRING操作
- //SETkeyvalue将字符串值value关联到key。
- redis.set("name","wangjun1");
- redis.set("id","123456");
- redis.set("address","guangzhou");
- //SETEXkeysecondsvalue将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。
- redis.setex("foo",5,"haha");
- //MSETkeyvalue[keyvalue...]同时设置一个或多个key-value对。
- redis.mset("haha","111","xixi","222");
- //redis.flushAll();清空所有的key
- System.out.println(redis.dbSize());//dbSize是多少个key的个数
- //APPENDkeyvalue如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。
- redis.append("foo","00");//如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。
- //GETkey返回key所关联的字符串值
- redis.get("foo");
- //MGETkey[key...]返回所有(一个或多个)给定key的值
- Listlist=redis.mget("haha","xixi");
- for(inti=0;i<list.size();i++){
- System.out.println(list.get(i));
- }
- //DECRkey将key中储存的数字值减一。
- //DECRBYkeydecrement将key所储存的值减去减量decrement。
- //INCRkey将key中储存的数字值增一。
- //INCRBYkeyincrement将key所储存的值加上增量increment。
- */
- /*-----------------------------------------------------------------------------------------------------------*/
- /**Hash操作
- //HSETkeyfieldvalue将哈希表key中的域field的值设为value。
- redis.hset("website","google","www.google.cn");
- redis.hset("website","baidu","www.baidu.com");
- redis.hset("website","sina","www.sina.com");
- //HMSETkeyfieldvalue[fieldvalue...]同时将多个field-value(域-值)对设置到哈希表key中。
- Mapmap=newHashMap();
- map.put("cardid","123456");
- map.put("username","jzkangta");
- redis.hmset("hash",map);
- //HGETkeyfield返回哈希表key中给定域field的值。
- System.out.println(redis.hget("hash","username"));
- //HMGETkeyfield[field...]返回哈希表key中,一个或多个给定域的值。
- Listlist=redis.hmget("website","google","baidu","sina");
- for(inti=0;i<list.size();i++){
- System.out.println(list.get(i));
- }
- //HGETALLkey返回哈希表key中,所有的域和值。
- Map<String,String>map=redis.hgetAll("hash");
- for(Map.Entryentry:map.entrySet()){
- System.out.print(entry.getKey()+":"+entry.getValue()+"\t");
- }
- //HDELkeyfield[field...]删除哈希表key中的一个或多个指定域。
- //HLENkey返回哈希表key中域的数量。
- //HEXISTSkeyfield查看哈希表key中,给定域field是否存在。
- //HINCRBYkeyfieldincrement为哈希表key中的域field的值加上增量increment。
- //HKEYSkey返回哈希表key中的所有域。
- //HVALSkey返回哈希表key中的所有值。
- */
- /*-----------------------------------------------------------------------------------------------------------*/
- /**LIST操作
- //LPUSHkeyvalue[value...]将值value插入到列表key的表头。
- redis.lpush("list","abc");
- redis.lpush("list","xzc");
- redis.lpush("list","erf");
- redis.lpush("list","bnh");
- //LRANGEkeystartstop
返回列表key中指定区间内的元素,区间以偏移量start和stop指定。下标(index)参数start和stop都以0为底,也就是说,以0表示
列表的第一个元素,以1表示列表的第二个元素,以此类推。你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类
推。
- Listlist=redis.lrange("list",0,-1);
- for(inti=0;i<list.size();i++){
- System.out.println(list.get(i));
- }
- //LLENkey返回列表key的长度。
- //LREMkeycountvalue根据参数count的值,移除列表中与参数value相等的元素。
- */
- /*-----------------------------------------------------------------------------------------------------------*/
- /**SET操作
- //SADDkeymember[member...]将member元素加入到集合key当中。
- redis.sadd("testSet","s1");
- redis.sadd("testSet","s2");
- redis.sadd("testSet","s3");
- redis.sadd("testSet","s4");
- redis.sadd("testSet","s5");
- //SREMkeymember移除集合中的member元素。
- redis.srem("testSet","s5");
- //SMEMBERSkey返回集合key中的所有成员。
- Setset=redis.smembers("testSet");
- Iteratort1=set.iterator();
- while(t1.hasNext()){
- Objectobj1=t1.next();
- System.out.println(obj1);
- }
- //SISMEMBERkeymember判断member元素是否是集合key的成员。是(true),否则(false)
- System.out.println(redis.sismember("testSet","s4"));
- //SCARDkey返回集合key的基数(集合中元素的数量)。
- //SMOVEsourcedestinationmember将member元素从source集合移动到destination集合。
- //SINTERkey[key...]返回一个集合的全部成员,该集合是所有给定集合的交集。
- //SINTERSTOREdestinationkey[key...]此命令等同于SINTER,但它将结果保存到destination集合,而不是简单地返回结果集
- //SUNIONkey[key...]返回一个集合的全部成员,该集合是所有给定集合的并集。
- //SUNIONSTOREdestinationkey[key...]此命令等同于SUNION,但它将结果保存到destination集合,而不是简单地返回结果集。
- //SDIFFkey[key...]返回一个集合的全部成员,该集合是所有给定集合的差集。
- //SDIFFSTOREdestinationkey[key...]此命令等同于SDIFF,但它将结果保存到destination集合,而不是简单地返回结果集。
- */
- }
- /**
- *@paramargs
- */
- publicstaticvoidmain(String[]args){
- JedisDemot1=newJedisDemo();
- t1.test1();
- }
- }
|
|