zoukankan      html  css  js  c++  java
  • 【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中

    一、操作string 、list 、map 对象
    1、引入jar:
    jedis-2.1.0.jar
     
    2、代码
    /**
         * @param args
         */
        public static void main(String[] args) {
            
            //连接redis服务
        Jedis jedis = new Jedis("192.168.88.15",6379);
            
            //password验证-假设你没有设置redispassword可不验证就可以使用相关命令
    //        jedis.auth("abcdefg");
            
            //简单的key-value 存储
            jedis.set("redis""myredis");
            System.out.println(jedis.get("redis"));
            
            //在原有值得基础上加入,如若之前没有该key。则导入该key
            //之前已经设定了redis相应"myredis",此句运行便会使redis相应"myredisyourredis"
            jedis.append("redis""yourredis");   
            jedis.append("content""rabbit");
            
            //mset 是设置多个key-value值   參数(key1,value1,key2,value2,...,keyn,valuen
            //mget 是获取多个key所相应的value值  參数(key1,key2,key3,...,keyn)  返回的是个list
            jedis.mset("name1","yangw","name2","demon","name3","elena");
            System.out.println(jedis.mget("name1","name2","name3"));
            
            //map
            Map<String,String> user = new HashMap<String,String>();
            user.put("name""cd");
            user.put("password""123456");
            //map存入redis
            jedis.hmset("user", user);
            //mapkey个数
            System.out.println(String.format("len:%d", jedis.hlen("user")));
            //map中的全部键值
            System.out.println(String.format("keys: %s", jedis.hkeys("user") ));
            //map中的全部value
            System.out.println(String.format("values: %s", jedis.hvals("user") ));
            //取出map中的name字段值
            List<String> rsmap = jedis.hmget("user""name","password");
            System.out.println(rsmap);
            //删除map中的某一个键值 password
            jedis.hdel("user""password");
            System.out.println(jedis.hmget("user""name""password"));
            
            //list
            jedis.del("listDemo");
            System.out.println(jedis.lrange("listDemo", 0, -1));
            jedis.lpush("listDemo""A");
            jedis.lpush("listDemo""B");
            jedis.lpush("listDemo""C");
            System.out.println(jedis.lrange("listDemo", 0, -1));
            System.out.println(jedis.lrange("listDemo", 0, 1));
            
            //set
            jedis.sadd("sname""wobby");
            jedis.sadd("sname""kings");
            jedis.sadd("sname""demon");
            System.out.println(String.format("set num: %d", jedis.scard("sname")));
            System.out.println(String.format("all members: %s", jedis.smembers("sname")));
            System.out.println(String.format("is member: %B", jedis.sismember("sname""wobby")));
            System.out.println(String.format("rand member: %s", jedis.srandmember("sname")));
            //删除一个对象
            jedis.srem("sname""demon");
            System.out.println(String.format("all members: %s", jedis.smembers("sname")));        
        }
     
    二、将自己定义对象保存到redis中:
     
    1、自己定义pojo 实现Serializable 接口:
     
    package cn.mingyuan.redis;
    import java.io.Serializable;
    /**
     * 測试用pojo。实现了Serializable,以便进行系列化操作
     * 
     * @author mingyuan
     * 
     */
    public class Person implements Serializable {
        private static final long serialVersionUID = -3562550857760039655L;
        
        private String name;
        private int age;
        public Person(){}
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    }
     
    2、測试类:
     
    package cn.mingyuan.redis;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import redis.clients.jedis.Jedis;
    public class Test {
        /**
         * @param args
         * @throws IOException
         * @throws ClassNotFoundException
         */
        public static void main(String[] args) throws IOException,
                ClassNotFoundException {
    //        Jedis redis = new  Jedis("192.168.88.15");
            Jedis redis = new Jedis("192.168.88.15", 6379);
            // connect能够不要。由于在运行set操作的时候会先进行推断client是否于server端建立了连接,若无,则启动连接过程
            redis.connect();
            String set = redis.set("mingyuan""1");
            System.out.println(" set result  " + set);
            redis.incr("mingyuan");
            String string = redis.get("mingyuan");
            System.out.println(" get result of key 'mingyuan'  " + string);
            // 以下是对对象进行存储的測试代码
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(bos);
            
            Person person = new Person("liudehua" ,22);
            oos.writeObject(person);
            byte[] byteArray = bos.toByteArray();
            oos.close();
            bos.close();
            String setObjectRet = redis.set("mingyuan".getBytes(), byteArray);
            System.out.println(" set object return  " + setObjectRet);
            byte[] bs = redis.get("mingyuan".getBytes());
            ByteArrayInputStream bis = new ByteArrayInputStream(bs);
            ObjectInputStream inputStream = new ObjectInputStream(bis);
            Person readObject = (Person) inputStream.readObject();
            System.out.println(" read object  " + readObject.toString());
            inputStream.close();
            bis.close();
            redis.disconnect();
        }
    }
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    PHP数组的升序降序函数
    overflow样式修改插件——jscrollpane
    li标签之间的空隙问题(转)
    纯CSS制作三角(转)
    图片放大插件——elevatezoom
    git常用命令笔记
    求数组子序列和最大值
    Vim快速入门
    C++求两个整数的最大公约数和最小公倍数
    实验楼-4-Linux文件权限
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8329426.html
Copyright © 2011-2022 走看看