下载
https://redis.io/download
安装
以Redis 5.0.5 版本为例
解压 到你想放的目录下(make 命令编译文件)
cd redis-5.0.5
make
打开终端输入命令 启动Redis 服务
src/redis-server
打开新的终端 运行客户端
src/redis-cli
停止Redis服务
src/redis-cli shutdown
java 连接redis 以及读写数据(jedis 2.9.0.jar)
maven仓库:https://mvnrepository.com/artifact/redis.clients/jedis
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
//连接本地的 Redis 服务
Jedis jedis =new Jedis("localhost");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
对象写入Redis
1,序列化对象存储; 2,json 字符串存储
/**set Object*/
public String set(String key,Object object)
{
return jedis.set(key.getBytes(), SerializeUtil.serialize(object));
}
/**get Object*/
public Object get(String key)
{
byte[] value =jedis.get(key.getBytes());
return SerializeUtil.unSerialize(value);
}
/**delete a key**/
public boolean del(String key)
{
return jedis.del(key.getBytes())>0;
}
序列化和反序列化对象工具
public class SerializeUtil {
public static byte[] serialize(Object object) {
ObjectOutputStream oos =null;
ByteArrayOutputStream baos =null;
try {
// 序列化
baos =new ByteArrayOutputStream();
oos =new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Object unSerialize(byte[] bytes) {
ByteArrayInputStream bais =null;
try {
// 反序列化
bais =new ByteArrayInputStream(bytes);
ObjectInputStream ois =new ObjectInputStream(bais);
return ois.readObject();
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
static class Aaimplements Serializable {
/**
* 序列化时必须要加上,否者反序列化会出错
*/
private static final long serialVersionUID = -4470319009692911196L;
private String name;
private Integer age;
private Integer sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
}
网友评论