Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
在Jedis开发中,我们很多时候希望直接把一个对象放到Redis中,然后在需要的时候取出来。Redis的key和value都支持二进制安全的字符串,存储Java对象不是问题,下面我们看一下如何来实现。
1要存储的对象
现在写一个很土的Java Bean,包含两个字段,id和name,类名叫做Person。为了实现序列化需求,该类实现Serializable接口。
public class Person implements Serializable { private int id; private String name; public Person(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } }
2序列化、反序列化
写一个序列化工具类,来提供对象的序列化和饭序列化的工作。代码如下:
/** * 序列化、反序列化工具类 */ package com.stephen.utility; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeUtil { /** * 序列化 * * @param object * @return */ public static byte[] serialize(Object object) { ByteArrayOutputStream baos = null; ObjectOutputStream oos = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(object); byte[] bytes = baos.toByteArray(); return bytes; } catch (Exception e) { e.printStackTrace(); } finally { try { oos.close(); } catch (IOException e) { e.printStackTrace(); } try { baos.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } /** * 反序列化 * * @param bytes * @return */ public static Object unserialize(byte[] bytes) { ByteArrayInputStream bais = null; ObjectInputStream ois = null; try { bais = new ByteArrayInputStream(bytes); ois = new ObjectInputStream(bais); return ois.readObject(); } catch (Exception e) { e.printStackTrace(); } finally { try { ois.close(); } catch (IOException e) { e.printStackTrace(); } try { bais.close(); } catch (IOException e) { e.printStackTrace(); } } return null; } }
3写对象
将Person对象写入Redis中:
public void setObject() { Person person = new Person(100, "alan"); jedis.set("person:100".getBytes(), SerializeUtil.serialize(person)); person = new Person(101, "bruce"); jedis.set("person:101".getBytes(), SerializeUtil.serialize(person)); }
4取对象
用Jedis获取对象:
public Person getObject(int id) { byte[] person = jedis.get(("person:" + id).getBytes()); return (Person) SerializeUtil.unserialize(person); }
相关推荐
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
Spring Data Redis 纯英文文档,介绍spring操作redis的一些用法
spring-data-redis-2.1.5.RELEASE和jedis2.9.0,用于java使用redis开发。
包括commons-pool-1.6.jar,jedis-2.0.0.jar,tomcat-redis-session-manager-1.2-tomcat-6&7.jar
标签:clients、jedis、redis、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译...
用于配置 tomcat-redis-session-manager
Redis支持很多编程语言的客户端,有C、C#、C++、Clojure、Common Lisp、Erlang、Go、Lua、...Redis官方列出的Java客户端也有少,有Jedis、JRedis、JDBC-Redis、RJC等,当然,Jedis是Redis官方首选的Java客户端开发包。
spring_redis集成,通过jedis作为redis的客户端。 只提供集成方式,具体api,参照jedis API
Redis Java客户端Jedis 2.9.0 jar+commons-pool2-2.4.2
Redis Windows32位+64位安装包,Linux压缩包, Redis图形操作管理软件,Jedis
里面包含了spring-data-redis-1.3.4.RELEASE.jar ,但是jedis可以不用,用spring-data-redis方式的同学可以使用
标签:apache、flink、connector、redis、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
实现tomcat 8及以后版本的tomcat集群的session持久化操作,基于redis实现tomcat容器的session的持久化 tomcat-redis-session-manager-by-eguid.jar+jedis-2.9.0.jar+commons-pool2-2.2.jar集合包
java使用redis客户端需要的jar包jedis-2.8.0.jar,方便大家查找
jedis客户端两个包:jedis2.7.2.jar+commons-pool2-2.0.jar,已亲测可用
java调用redis工具类jedis
赠送jar包:spring-session-data-...标签:springframework、session、spring、data、redis、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化
redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现 redis实现分布式锁(java/jedis),其中包含工具方法以及使用demo 本资源是利用java的jedis实现
jedis-2.9.0.jar jedis-2.9.0-javadoc.jar jedis-2.9.0-sources.jar