1. 程式人生 > >【redis,1】java操作redis: 將string、list、map、自定義的物件儲存到redis中

【redis,1】java操作redis: 將string、list、map、自定義的物件儲存到redis中

一、操作string 、list 、map 物件 1、引入jar: jedis-2.1.0.jar 2、程式碼 /**      * @param args      */     public static void main(String[] args) {         //連線redis服務     Jedis jedis = new Jedis("192.168.88.15",6379);         //密碼驗證-如果你沒有設定redis密碼可不驗證即可使用相關命令 //        jedis.auth("abcdefg");         //簡單的key-value 儲存
        jedis.set("redis""myredis");         System.out.println(jedis.get("redis"));         //在原有值得基礎上新增,如若之前沒有該key,則匯入該key         //之前已經設定了redis對應"myredis",此句執行便會使redis對應"myredisyourredis"         jedis.append("redis""yourredis");            jedis.append("content""rabbit");         //mset 是設定多個key-value值   引數(key1,value1,key2,value2,...,keyn
,valuen
        //mget 是獲取多個key所對應的value值  引數(key1,key2,key3,...,keyn)  返回的是個list         jedis.mset("name1","yangw","name2","demon","name3","elena");         System.out.println(jedis.mget("name1","name2","name3"));         //map         Map<String,String> user = new HashMap<String,String>();
        user.put("name""cd");         user.put("password""123456");         //map存入redis         jedis.hmset("user", user);         //mapkey個數         System.out.println(String.format("len:%d", jedis.hlen("user")));         //map中的所有鍵值         System.out.println(String.format("keys: %s", jedis.hkeys("user") ));         //map中的所有value         System.out.println(String.format("values: %s", jedis.hvals("user") ));         //取出map中的name欄位值         List<String> rsmap = jedis.hmget("user""name","password");         System.out.println(rsmap);         //刪除map中的某一個鍵值 password         jedis.hdel("user""password");         System.out.println(jedis.hmget("user""name""password"));         //list         jedis.del("listDemo");         System.out.println(jedis.lrange("listDemo", 0, -1));         jedis.lpush("listDemo""A");         jedis.lpush("listDemo""B");         jedis.lpush("listDemo""C");         System.out.println(jedis.lrange("listDemo", 0, -1));         System.out.println(jedis.lrange("listDemo", 0, 1));         //set         jedis.sadd("sname""wobby");         jedis.sadd("sname""kings");         jedis.sadd("sname""demon");         System.out.println(String.format("set num: %d", jedis.scard("sname")));         System.out.println(String.format("all members: %s", jedis.smembers("sname")));         System.out.println(String.format("is member: %B", jedis.sismember("sname""wobby")));         System.out.println(String.format("rand member: %s", jedis.srandmember("sname")));         //刪除一個物件         jedis.srem("sname""demon");         System.out.println(String.format("all members: %s", jedis.smembers("sname")));             } 二、將自定義物件儲存到redis中:
1、自定義pojo 實現Serializable 介面: package cn.mingyuan.redis; import java.io.Serializable; /**  * 測試用pojo,實現了Serializable,以便進行系列化操作  *   * @author mingyuan  *   */ publicclass Person implements Serializable {     private static final long serialVersionUID = -3562550857760039655L;     private String name;     private int age;     public Person(){}     public Person(String name, int age) {         super();         this.name = name;         this.age = age;     }     public String getName() {         return name;     }     public void setName(String name) {         this.name = name;     }     public int getAge() {         return age;     }     public void setAge(int age) {         this.age = age;     }     @Override     public String toString() {         return "Person [name=" + name + ", age=" + age + "]";     } } 2、測試類: package cn.mingyuan.redis; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import redis.clients.jedis.Jedis; publicclass Test {     /**      * @param args      * @throws IOException      * @throws ClassNotFoundException      */     public static void main(String[] args) throws IOException,             ClassNotFoundException { //        Jedis redis = new  Jedis("192.168.88.15");         Jedis redis = new Jedis("192.168.88.15", 6379);         // connect可以不要,因為在執行set操作的時候會先進行判斷客戶端是否於伺服器端建立了連線,若無,則啟動連線過程         redis.connect();         String set = redis.set("mingyuan""1");         System.out.println(" set result \t" + set);         redis.incr("mingyuan");         String string = redis.get("mingyuan");         System.out.println(" get result of key 'mingyuan' \t" + string);         // 下面是對物件進行儲存的測試程式碼         ByteArrayOutputStream bos = new ByteArrayOutputStream();         ObjectOutputStream oos = new ObjectOutputStream(bos);         Person person = new Person("liudehua" ,22);         oos.writeObject(person);         byte[] byteArray = bos.toByteArray();         oos.close();         bos.close();         String setObjectRet = redis.set("mingyuan".getBytes(), byteArray);         System.out.println(" set object return \t" + setObjectRet);         byte[] bs = redis.get("mingyuan".getBytes());         ByteArrayInputStream bis = new ByteArrayInputStream(bs);         ObjectInputStream inputStream = new ObjectInputStream(bis);         Person readObject = (Person) inputStream.readObject();         System.out.println(" read object \t" + readObject.toString());         inputStream.close();         bis.close();         redis.disconnect();     } }