【redis,1】java操做redis: 將string、list、map、本身定義的對象保存到redis中

1、操做string 、list 、map 對象
一、引入jar:
jedis-2.1.0.jar
 
二、代碼
/**
     * @param args
     */
    public static void main(String[] args) {
        
        //鏈接redis服務
    Jedis jedis = new Jedis("192.168.88.15",6379);
        
        //password驗證-假設你沒有設置redispassword可不驗證就能夠使用相關命令
//        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")));        
    }
 
2、將本身定義對象保存到redis中:
 
一、本身定義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 + "]";
    }
}
 
二、測試類:
 
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();
    }
}
相關文章
相關標籤/搜索