java操作redis

博了个客 2020-04-29

首先连接redis服务

//连接本地的 Redis 服务
    public static Jedis getRedis(){
        Jedis jedis = new Jedis("localhost");
        System.out.println("连接redis的反馈信息:"+jedis.ping());
        return jedis;
    }//控制台返回 redis反馈的信息 -->连接redis的反馈信息:PONG

操作String类型的数据

public static void StringData(Jedis jedis){
        String name = jedis.get("name");//获取当前name的值 张三
        System.out.println("name:"+name);
        jedis.set("name","李四");
        String name1 = jedis.get("name");
        //向同一个key上存数据时,该key上原来的数据就会被覆盖掉
        System.out.println("name1:"+name1);
    }//控制台 name:张三 name1:李四

操作list类型的数据

public static void ListData(Jedis jedis){
        //插入List类型的数据
        jedis.lpush("list","moon");//下标为0
        jedis.lpush("list","show");//下标为1
        jedis.lpush("list","jack");//下标为2
        jedis.lpush("list","hello");//下标为3
        List<String> list = jedis.lrange("list", 0, 3); 从下标0开始下标3结束 
        for (String s:list){ //循环并打印list中的值
            System.out.println(s);
        }
    }输出结果 ===> 
    hello    jack    show    moon


操作Hash类型的数据

   //操作hash类型的数据
    public static void HashData(Jedis jedis){
        Map<String,String> userMap = new HashMap<>();//new 一个HashMap 并存入一些值
        userMap.put("name","lily");
        userMap.put("age","20");
        userMap.put("qq","2325632636");
        //将map存到redis中
        jedis.hmset("user",userMap);
        List<String> userList = jedis.hmget("user","name","age","qq"); //user为key name,age,qq 为files 
        System.out.println(userList);//获取所有key 的 value   [lily, 20, 2325632636]
        System.out.println(jedis.exists("user"));//判断user是否存在  true
        System.out.println(jedis.hkeys("user")); //查看user的所有key  [name, qq, age]
    }

操作set集合类型数据(Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。)

//操作set类型的数据
    public static void setData(Jedis jedis){
        jedis.sadd("users","张三");
        jedis.sadd("users","李四");
        jedis.sadd("users","王五");
        jedis.sadd("users","赵六");
        //获取set集合中所有的值
        System.out.println(jedis.smembers("users"));[李四, 赵六, 王五, 张三]  ---->>> 集合无序排列
     //判断 key 为 users 中是否存在 xxx这个用户 存在返回 true 反之 为 false
     System.out.println(jedis.sismember("users","张三"));     true     System.out.println(jedis.sismember("users","法外狂徒"));   false     //查看当前 users 中存的数量
       System.out.println(jedis.scard("users"));   4
}

Redis 有序集合(sorted set)

//Redis 有序集合(sorted set)
    public static void sortedSetData(Jedis jedis){
        jedis.del("a");//删除 a 测试时为了防止重复插入
        jedis.rpush("a","1");
        jedis.lpush("a","6");
        jedis.lpush("a","3");
        jedis.lpush("a","9");
        System.out.println(jedis.lrange("a",0,-1)); 9,3,6,1 
        System.out.println(jedis.sort("a"));1,6,3,9
        System.out.println(jedis.lrange("a",0,-1));9,3,6,1 //此时结果依然为插入时的顺序 sort 仅仅是可以排序 但不影响 原本的插入顺序
    }
 

 
 

 判断key的操作

public static void getKeys(Jedis jedis){
        //获取redis中所有的key
        Set<String> keys = jedis.keys("*");
        //使用迭代器获取set的值
        Iterator<String> its = keys.iterator();
        //判断its中是否有值
        while (its.hasNext()){
            String key = its.next();
            System.out.println(key); //name,a,list,user,users,age
        }
    }

相关推荐

DiamondTao / 0评论 2020-08-30