redis使用初探

来源:互联网 发布:肛门灌啤酒 知乎 编辑:程序博客网 时间:2024/05/22 10:57

第一部分 安装

首先访问redis.io下载最新稳定版2.2.12,接着按照下面步骤进行操作

0,tar -xvzf redis-2.2.12.tar.gz
1,cd redis-2.2.12
2,make
3,edit redis/redis.conf,set maxmemory 100mb   (here,we just for test,so this size is set to 100mb)
4,sudo sysctl vm.overcommit_memory=1
5,src/redis-server redis.conf (start up server)
6,src/redis-cli (start up the client)
7,test on redis:
mingyuan@mingyuan-laptop:/opt/redis-2.2.12$ src/redis-cli
redis 127.0.0.1:6379> set m 1
OK
redis 127.0.0.1:6379> get m
"1"
redis 127.0.0.1:6379> exit
mingyuan@mingyuan-laptop:/opt/redis-2.2.12$


第二部分 使用jedis操作redis

废话不说,直接上代码:

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("localhost");
//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();
person.setAge(1);
person.setName("mingyuan");
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();


}


}



person类:
package cn.mingyuan.redis;


import java.io.Serializable;
/**
 * 测试用pojo,实现了Serializable,以便进行系列化操作
 * @author mingyuan
 *
 */
public class Person implements Serializable {
private static final long serialVersionUID = -3562550857760039655L;
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}


private String name;
private int 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;
}
}


输出结果:

 set result OK
 get result of key 'mingyuan' 2
 set object return OK
 read object Person [name=mingyuan, age=1]

第三部分 总结

redis作为一个比较流行的k/v数据库操作简单,部署方便,且有好用的java客户端(jedis),后面有许多值得发掘的东西,会一一分享出来。
原创粉丝点击