java操作redis数据库五:Object任意类型
来源:互联网 发布:淘宝领券链接 编辑:程序博客网 时间:2024/06/06 14:26
在开发过程中,会发现像以上一样去操作时非常麻烦的,因为要考虑到不同的类型,
那么redsi是否可以存储object对象呢,答案是肯定的jedis的set方法只能存放string字符串,但是通过熟悉jedis,会发现一个
jedis.set(byte[] key,byte[] value);方法 本文就是通过这个方法进行操作Object对象的
废话不多说,直接上代码
package com.redis;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import redis.clients.jedis.Jedis;
import com.sun.xml.internal.messaging.saaj.util.ByteInputStream;
/**
* redis操作object对象
* @author Administrator
*
*/
public class jedisUtlis {
/**
* 将对象转成byte数组
*/
public static byte[] toBytArray(Object obj){
ByteArrayOutputStream bos=new ByteArrayOutputStream();
ObjectOutputStream oos=null;
byte[] b=null;
try {
oos=new ObjectOutputStream(bos);
System.out.println("oos:"+bos);
} catch (IOException e1) {
System.out.println("实例化io流出错。。。。。");
e1.printStackTrace();
}
try{
oos.writeObject(obj);
b=bos.toByteArray();
}catch(Exception e){
System.out.println("转数组对象出错了。。。");
}finally{
try{
oos.close();
bos.close();
}catch(Exception e){
e.printStackTrace();
}
}
return b;
}
/**
* 将bety数组反转成java对象
* @throws IOException
*/
public static Object toObject(byte[] b){
Object obj=null;
ByteArrayInputStream bais=new ByteArrayInputStream(b);
ObjectInputStream ois=null;
try {
ois=new ObjectInputStream(bais);
obj=ois.readObject();
} catch (Exception e) {
System.out.println("流转换的出现问题");
e.printStackTrace();
}finally{
try {
ois.close();
bais.close();
} catch (IOException e) {
System.out.println("关闭流的时候出现问题。。。");
e.printStackTrace();
}
}
return obj;
}
}
/**
* 测试类
* @author Administrator
*
*/
class person implements Serializable{
String name;
String age;
String sex;
person(){}
public person(String name, String age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
}
class Test{
public static void main(String[] args) {
Jedis jedis=new DemoRedis().getJedis();
person p=new person("xiaodan","12","女");
//转成byte数组
byte[] value=jedisUtlis.toBytArray(p);
//转成byte数组
byte[] key="person1".getBytes();
jedis.set(key, value);
//从数据库获取对象
byte[] obj=jedis.get(key);
//将对象转成本地类
person p1=(person) jedisUtlis.toObject(obj);
}
}
- java操作redis数据库五:Object任意类型
- java操作redis数据库
- java操作Redis数据库
- java操作redis数据库
- 数据库的连接、索引和Redis的五种数据类型及其操作命令、使用场景
- java代码操作Redis数据库
- 【Redis学习】:Java操作redis数据库
- Redis数据库系列(三)------Redis字符串类型的操作
- Redis操作List<Object>
- Jedis对Redis五大类型操作简单介绍
- redis中的五种数据类型和基本操作
- redis中的五种数据类型及其常用操作
- redis中的五种数据类型和基本操作
- 通过Jedis操作Redis的五种数据类型
- java 操作redis 数据库一:基本操作
- Redis五类型
- redis-java-api相关类型操作
- Java使用JDBC连接任意类型数据库(mysql oracle。。)
- Linux配置防火墙,开启特定端口
- 调用js代码获取webView页面中的所有图片及点击事件
- Mysql转oracle之SQL区别
- Spring学习笔记一:装配Bean
- 一个循环体引发的思考
- java操作redis数据库五:Object任意类型
- Redhat VM配置
- java中数组
- AuthNumberView -- 输入验证码
- JDK源码-java.lang.instrument-第一部分-源码学习
- resource fork, Finder information, or similar detritus not allowed
- HTTP 协议发展历史
- 回溯子集树与排列树——装载问题&旅行售货员问题(算法设计课题)
- 获取 APP 屏幕最上方的 View Controller