redis java对象操作
使用Jedis客户端
1. java 对象,需序列化
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. 序列化类
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) {
        }
        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) {
        }
        return null;
    }
}
3. 对象的操作测试
public class SerializeTest {
    /**
     * @param args
     */
    private static Jedis jedis;
    public static void main(String[] args) throws InterruptedException {
        jedis=new Jedis("127.0.0.1",6379);
        setObject();
        Thread.sleep(1000);
        Person person =getObject(100);
        System.out.println(jedis.keys("*"));
        if(person!=null){
            System.out.println(person.getId());
            System.out.println(person.getName());
        }
        delOject();
        System.out.println(jedis.keys("*"));
        person = getObject(100);
        if(person!=null){
            System.out.println(person.getId());
            System.out.println(person.getName());
        }else{
            System.out.println("key not exist");
        }
    }
    public static Person getObject(int id) {
        byte[] person = jedis.get(("person:" + id).getBytes());
        return (Person) SerializeUtil.unserialize(person);
        }
    public static 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));
        }
    public static void delOject(){
        boolean isExist=jedis.exists("person:100".getBytes());
        if(isExist){
            System.out.println("delete the key");
            jedis.del("person:100".getBytes());
        }
    }
}
redis java对象操作的更多相关文章
- Redis Java连接操作
		
安装 要在Java程序中使用使用操作Redis,需要确保有Redis的Java驱动程序和Java设置在机器上.可以检查看Java教程-学习如何在机器上安装Java.现在,让我们来看看如何设置Redis ...
 - redis java操作
		
Redis Java连接操作 连接到Redis服务器 import redis.clients.jedis.Jedis; public class RedisJava { public static ...
 - Java操作Redis存储对象类型数据
		
背景描述 关于JAVA去操作Redis时,如何存储一个对象的数据,大家是非常关心的问题,虽然官方提供了存储String,List,Set等等类型,但并不满足我们现在实际应用.存储一个对象是是 ...
 - redis 存储java对象 两种方式
		
根据redis的存储原理,Redis的key和value都支持二进制安全的字符串 1.利用序列化和反序列化的方式存储java对象我们可以通过对象的序列化与反序列化完成存储于取出,这样就可以使用redi ...
 - Redis入门教程(三)— Java中操作Redis
		
在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...
 - Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
		
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
 - redis(Springboot中封装整合redis,java程序如何操作redis的5种基本数据类型)
		
平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 Red ...
 - Java操作Mongodb 保存/读取java对象到/从mongodb
		
从http://central.maven.org/maven2/org/mongodb/mongo-java-driver/选择一个版本进行下载,这里选择的是3.0.0版本,具体下载以下jar包: ...
 - 报表生成poi----java操作java对象生成execl表单
		
1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...
 
随机推荐
- XAF How to show custom forms and controls in XAF (Example)
			
XAF How to show custom forms and controls in XAF (Example) https://www.devexpress.com/Support/Center ...
 - 网上搜集了点资料,学web的人互相分享共同进步吧(php编码的好习惯必须养成)
			
网上搜集了点资料,学web的人互相分享共同进步吧 一.优秀的代码应该是什么样的? 优秀的PHP代码应该是结构化的.大段的代码应该被分割整理成一个个函数或方法,而那些不起眼的小段代码则应该加上注释,以便 ...
 - Top ShooterHDU2863&&继续xxx定律HDU3784
			
继续xxx定律 HDU3784 先看这个题目:HDU3782 #include<iostream> #include<algorithm> #include<stdio. ...
 - 一个简单的python线程池框架
			
初学python,实现了一个简单的线程池框架,线程池中除Wokers(工作线程)外,还单独创建了一个日志线程,用于日志的输出.线程间采用Queue方式进行通信. 代码如下:(不足之处,还请高手指正) ...
 - 多个div居中显示
			
页面中有多个div时我们希望并排居中显示,可以通过在并排显示的div上一层再加一个div,设定宽度,然后让其居中显示达到需要的效果. 关键是要对外层div设定宽度. <!DOCTYPE html ...
 - myrocks 之数据字典
			
data dictionary rocksdb作为mysql的一个新的存储引擎,在存储引擎层,会维护自已的元数据信息.在innodb存储引擎中,我们通过information_schema下的INNO ...
 - 【腾讯Bugly干货分享】深入理解 ButterKnife,让你的程序学会写代码
			
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/578753c0c9da73584b025875 0.引子 话说我们做程序员的,都 ...
 - Razor.js,基于JavaScript的Razor实现
			
哈罗大家好,之前造了JS模板轮子Otmpl,虽然勉强算不错,但是和MVC Razor的简洁优雅相比,简直是惨不忍睹.经过几天的研究,终于在参考国外一些牛人的代码后,展现出第一版,欢迎各位园友拍砖讨论. ...
 - Wix 安装部署教程(九) --用WPF做安装界面
			
经常安装PC端的应用,特别是重装系统之后,大致分为两类.一类像QQ,搜狗输入法这样的.分三步走的:第一个页面可以自定义安装路径和软件许可.第二个页面显示安装进度条,第三个页面推荐其他应用.先不管人家怎 ...
 - js模版引擎handlebars.js实用教程——关于HTML编码
			
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...