zoukankan      html  css  js  c++  java
  • 非关系型数据库之Redis

    1、Java中使用Jedis操作Redis
        使用Java操作Redis需要jedis-2.1.0.jar
        如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar
    2、JAVA使用Redis做消息队列
        Redis消息队列的生产者和消费者:
            Message 需要传送的实体类(需实现Serializable接口)
            Configuration Redis的配置读取类,继承自Properties
            ObjectUtil 将对象和byte数组双向转换的工具类
            Jedis 通过消息队列的先进先出(FIFO)的特点结合Redis的list中的push和pop操作进行封装的工具类
        (一)序列化
            //对象转Byte[](ByteArrayOutputStream的toByteArray方法)
            public static byte[] object2Bytes(Object obj) throws IOException{
                 ByteArrayOutputStream bo=new ByteArrayOutputStream();
                 ObjectOutputStream oo=new ObjectOutputStream(bo);
                 oo.writeObject(obj);
                 byte[] bytes=bo.toByteArray();
                 bo.close();
                 oo.close();
                 return bytes;
            }
            //Byte[]转对象(ByteArrayInputStream的readObject)
            public static Object bytes2Object(byte[] bytes) throws Exception{
               ByteArrayInputStream in=new ByteArrayInputStream(bytes);
               ObjectInputStream sIn=new ObjectInputStream(in);
               return sIn.readObject();
           }
        (二)消息类(实现Serializable接口)
        (三)Redis的操作
        利用redis做队列,我们采用的是redis中list的push和pop操作(队列:先进先出)
            //获取数据
            String value=null;
            Jedis jedis=null;
            try{
                jedis=jedisPool.getResource();
                value=jedis.get(key);
            }catch{}
    三、Jedis操作各个类型
    1、redis存储字符串
        jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin  
        System.out.println(jedis.get("name"));//执行结果:xinxin  
        jedis.append("name", " is my lover"); //拼接
        System.out.println(jedis.get("name"));
        jedis.del("name");  //删除某个键
        System.out.println(jedis.get("name"));
        //设置多个键值对
        jedis.mset("name","liuling","age","23","qq","476777XXX");
        jedis.incr("age"); //进行加1操作
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));
    2、redis操作Map
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "xinxin");
        map.put("qq", "123456");
        jedis.hmset("user",map);
        //删除map中的某个键值  
        jedis.hdel("user","age");
    3、jedis操作List
        //开始前,先移除所有的内容
        jedis.del("java framework");
        jedis.lpush("java framework","spring");
        jedis.lpush("java framework","struts");  
        jedis.lpush("java framework","hibernate");
        //再取出所有数据jedis.lrange是按范围取出,
        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有  
        System.out.println(jedis.lrange("java framework",0,-1));  
        jedis.rpush("java framework","spring");  
    4、jedis操作Set
        //添加
        jedis.sadd("user","liuling");  
        jedis.sadd("user","who");
        //移除noname
        jedis.srem("user","who");  
        System.out.println(jedis.smembers("user"));//获取所有加入的value
        System.out.println(jedis.sismember("user", "who"));//判断 who 是否是user集合的元素
        System.out.println(jedis.scard("user"));//返回集合的元素个数

    博客园:http://www.cnblogs.com/zhuziyu/
    Copyright ©2018 不是植物
    【转载文章务必保留出处和署名,谢谢!】
  • 相关阅读:
    “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
    深入浅出 eBPF 安全项目 Tracee
    Unity3d开发的知名大型游戏案例
    Unity 3D 拥有强大的编辑界面
    Unity 3D物理引擎详解
    Unity 3D图形用户界面及常用控件
    Unity 3D的视图与相应的基础操作方法
    Unity Technologies 公司开发的三维游戏制作引擎——Unity 3D
    重学计算机
    windows cmd用户操作,添加,设备管理员组,允许修改密码
  • 原文地址:https://www.cnblogs.com/zhuziyu/p/8718945.html
Copyright © 2011-2022 走看看