通过 Java 操作 redis -- 基本通用命令

发布于:2024-05-12 ⋅ 阅读:(158) ⋅ 点赞:(0)

       

目录

使用 String 类型的 get 和 set 方法

使用通用命令 exists ,del

使用通用命令 keys

使用通用命令 expire,ttl

使用通用命令 type


        要想通过 Java 操作 redis,首先要连接上 redis 服务器,推荐看通过 Java 操作 redis -- 连接 redis

        关于 redis 的基本通用命令推荐看Redis 的常用基本全局命令【小林优选】

使用 String 类型的 get 和 set 方法

        按道理这两个命令不是基本通用命令,但 redis 中要有数据我们才好进行分析,所以先学这两个命令

/**
     * 使用 String 类型的 get 和 set 方法
     * */
    public static void  test1(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();
        //清空当前数据库中的数据
        //jedis.flushDB();

        jedis.set("key1","111");
        String value1=jedis.get("key1");
        System.out.println("value1:"+value1);

        jedis.set("key2","222");
        //通过 SetParams 类型的对象来设置 set 命令的选项,如 ex,px,xx,nx
        SetParams setParams=new SetParams();
        //设置秒级的过期时间
        setParams.ex(10);
        //设置毫秒级的过期时间
        //setParams.px(10000);
        //键值对仅更新(之前存在该key值则更新,不存在则没有效果)
        setParams.xx();
        //键值对仅创建(之前不存在该key值则创建,存在则没有效果)
        //setParams.nx();
        jedis.set("key2","333",setParams);
        String value2=jedis.get("key2");
        System.out.println("value2:"+value2);
    }

得到的结果为:

使用通用命令 exists ,del

public static void test2(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        jedis.set("key2","222");
        jedis.set("key3","333");

        //判断单个键值对是否存在,单位为 boolean
        boolean result1=jedis.exists("key1");
        System.out.println("result1:"+result1);
        //判断多个键值对是否存在,返回存在的键值对个数,单位为 long(可变长参数)
        long result2=jedis.exists("key1","key2","key3");
        System.out.println("result2:"+result2);

        //删除单个元素,返回值为删除的个数,单位为 long
        long result3=jedis.del("key1");
        System.out.println("result3:"+result3);
        //删除多个元素,返回值为删除的个数,单位为 long
        long result4=jedis.del("key1","key2","key3");
        System.out.println("result4:"+result4);
    }

得到的结果为:

使用通用命令 keys

    /**
     * 使用通用命令 keys
     * */
    public static void test3(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        jedis.set("key2","222");
        jedis.set("key3","333");

        //获取指定格式的 key,* 代表所有格式
        Set<String> set=jedis.keys("*");
        System.out.println(set);
    }

得到的结果为:

使用通用命令 expire,ttl

     /**
     * 使用通用命令 expire,ttl
     * */
    public static void test4(Jedis jedis) {
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        jedis.set("key1","111");
        //为 key1 键值对设置 10 秒的过期时间,设置成功返回 1
        long result1=jedis.expire("key1",10);
        System.out.println("result1:"+result1);
        //休眠 2 秒
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        //获取 key1 的过期时间
        long result2=jedis.ttl("key1");
        System.out.println("result2:"+result2);
    }

得到的结果为:

使用通用命令 type

    /**
     * 使用通用命令 type
     * */
    public static void test5(Jedis jedis){
        //清空 redis 中所有数据库的数据
        jedis.flushAll();

        //设置 value 为 String 类型的键值对
        jedis.set("key1","111");
        //获取 key1 对应 value 的类型
        String result1=jedis.type("key1");
        System.out.println("result1:"+result1);

        //设置 value 为 list 类型的键值对
        jedis.lpush("key2","111","222","333");
        //获取 key2 对应 value 的类型
        String result2=jedis.type("key2");
        System.out.println("result2:"+result2);

        //设置 value 为 hash 类型的键值对
        jedis.hset("key3","f1","111");
        //获取 key3 对应 value 的类型
        String result3=jedis.type("key3");
        System.out.println("result3:"+result3);

        //设置 value 为 set 类型的键值对
        jedis.sadd("key4","111","222","333");
        //获取 key4 对应 value 的类型
        String result4=jedis.type("key4");
        System.out.println("result4:"+result4);

        //设置 value 为 zset 类型的键值对
        jedis.zadd("key5",10,"zhangsan");
        //获取 key5 对应 value 的类型
        String result5=jedis.type("key5");
        System.out.println("result5:"+result5);
    }

得到的结果为:


网站公告

今日签到

点亮在社区的每一天
去签到