1. 程式人生 > >【redis,1】java操作redis: 將string、list、map、自己定義的對象保存到redis中

【redis,1】java操作redis: 將string、list、map、自己定義的對象保存到redis中

n) spa 存儲 div ber sys mil 操作 write

一、操作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); //password驗證-假設你沒有設置redis
password可不驗證就可以使用相關命令
// 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 * */ public class 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; public class 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操作的時候會先進行推斷client是否於server端建立了連接,若無,則啟動連接過程 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(); } }

【redis,1】java操作redis: 將string、list、map、自己定義的對象保存到redis中