您的位置:首页 > 数据库 > Redis

【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中

2018-01-22 16:00 531 查看
一、操作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验证-假设你没有设置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")));
}

二、将自己定义对象保存到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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐