zoukankan      html  css  js  c++  java
  • jedis中的两组方法

    redis中序列化对象的时候要注意.

    jedis中有两组方法:

    1,key为string类型,value也为string类型.(必须的)

    2,key为字节数组,那么valeu也会转成字节数组,(必须的)

    key与value一一对应这一点要注意.

    体会:在学习一个新的东西的时候,可以api挨着一个一个调用.对比看他是什么情况.

    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.EOFException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.util.HashMap;
    import java.util.List;
    import redis.clients.jedis.Jedis;
    
    public class Test05 {
    
        public static void main(String[] args) throws Exception {
            Jedis jedis = new Jedis("localhost");
            HashMap<String,Object> map = new HashMap<String, Object>();
            map.put("我是", "中国人");
            map.put("你们", "外国人");
            //这个方法很特别:它的key呀,不是String,而是一个数组,而这个key对应的value也是一个字节数组
            jedis.rpushx("keyName".getBytes(),writeObject(map) );
            //这个方法也很特点:它返回来的vlaue的list集合都是字节数组
            List<byte[]> list=jedis.lrange("keyName".getBytes(), 0, -1);
            //这样得到就是一个String
            List<String> list2=jedis.lrange("keyName", 0, -1);
        }
        
        /**
         * 把对象转成字节数组.
         * 把一个对象,写入到一个字节数组流中;
         * 然后从这个字节数组流,得到字节数组.
         */
        public static byte[] writeObject(Object o) throws Exception {  
            ByteArrayOutputStream bos = new ByteArrayOutputStream();  
            ObjectOutputStream oos = new ObjectOutputStream(bos);  
            oos.writeObject(o);  
            oos.flush();  
            oos.close();  
            bos.close();  
            return bos.toByteArray();
        }  
      
        /**
         * 把字节数组,转成一个对象. 
         */      
        public static Object readObject(byte[] object) throws Exception{  
            ByteArrayInputStream bis = new ByteArrayInputStream(object);  
            ObjectInputStream ois = new ObjectInputStream(bis);  
            Object o = null;  
            try {  
                o = ois.readObject();  
            } catch(EOFException e) {  
                System.err.print("read finished");  
            }  
            bis.close();  
            ois.close();  
            return o;  
       }  
    }

    2016年3月23日13:06:30

  • 相关阅读:
    dotNet开发游戏微端
    另类Unity热更新大法:代码注入式补丁热更新
    KSFramework配置表:扩展表格解析类型
    KSFramework常见问题:Excel如何进行SVN协作、差异比较?
    KSFramework常见问题:Lua脚本热重载,内存状态数据丢失?
    KEngine:Unity3D资源的打包、加载、调试监控
    KEngine策划指南:配置表格的编辑与编译
    开发遇到的奇葩问题
    初始加载时edittext不自动获取焦点的方法
    android 监控软键盘确定 搜索 按钮并赋予点击事件
  • 原文地址:https://www.cnblogs.com/yinyu/p/5310667.html
Copyright © 2011-2022 走看看