初学Redis(四)--Jedis的使用详解

精选30+云产品,助力企业轻松上云!>>> hot3.png

1. 创建项目

1.1 创建步骤

1.2 添加pom依赖

    <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
        <!--测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.2.4.RELEASE</version>
        </dependency>
    </dependencies>

打开redis可视化工具,可以看到没有任何数据,接下来我们进行操作数据

新建demo类

2. 操作字符串

    /**
     * 字符串操作
     */
    @Test
    public void testString(){
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //添加数据
        jedis.set("name", "manlu");
        //获取数据
        System.out.println(jedis.get("name"));

        //拼接字符串
        jedis.append("name", ".com");
        System.out.println(jedis.get("name"));

        //删除数据
        jedis.del("name");
        System.out.println(jedis.get("name"));

        //设置多个键值对
        jedis.mset("name","漫路","age","18","qq","550945825");
        jedis.incr("age");//加1操作
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));
    }

执行完成后看可视化工具

3. 操作hash(map)

    /**
     * redis操作map集合
     */
    @Test
    public void testMap() {
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);

        //新建一个map
        Map<String,String> map = new HashMap<String,String>();
        map.put("name", "漫路");
        map.put("age", "18");
        map.put("qq", "550945825");

        //1.添加数据
        jedis.hmset("user", map);

        //2.获取数据
        //取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List
        //第一个参数是存入redis中map对象的key,后面跟的是放入map中对象的key,后面的key可以是多个,是可变的
        List<String> rsmap = jedis.hmget("user", "name","age","qq");
        System.out.println(rsmap);

        //3.删除数据
        //删除map中的某个键值
        jedis.hdel("user", "age");
        System.out.println(jedis.hmget("user", "age"));//因为删除了,所以返回的是Null
        System.out.println(jedis.hlen("user"));//返回key为user的键中存放的值的个数2
        System.out.println(jedis.exists("user"));//是否存在key为user的记录,返回true
        System.out.println(jedis.hkeys("user"));//返回map对象中的所有key
        System.out.println(jedis.hvals("user"));//返回map对象中的所有value


        //获取user,通过迭代器的方式,遍历拿到每一个数据
        Iterator<String> iter = jedis.hkeys("user").iterator();
        while(iter.hasNext()) {
            String key = iter.next();
            System.out.println(key+":" + jedis.hmget("user", key));
        }
    }

执行完成后看可视化工具

3. 操作列表(list)

    /**
     * redis操作List集合
     */
    @Test
    public void testList() {
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);

        //1.获取list中的数据,这里肯定是空的,因为还没有添加数据
        //.lrange是按范围取出
        //第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
        System.out.println(jedis.lrange("list", 0, -1));

        //2.添加数据
        //先向key list 中存放三条数据,lpush添加到头上
        jedis.lpush("list","spring");
        jedis.lpush("list", "springboot");
        jedis.lpush("list", "springcloud");
        //[springcloud, springboot, spring]
        System.out.println(jedis.lrange("list", 0, -1));

        //3.删除数据
        jedis.del("list");

        //2.添加数据,添加到尾部
        jedis.rpush("list", "spring");
        jedis.rpush("list", "springboot");
        jedis.rpush("list","springcloud");
        //[spring, springboot, springcloud]
        System.out.println(jedis.lrange("list", 0, -1));
    }

执行完成后看可视化工具

4.操作集合(set)

    /**
     * redis操作set集合
     */
    @Test
    public void testSet() {
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //上面用过user操作map了,先删除user
        jedis.del("user");

        //1. 添加
        jedis.sadd("user", "小张");
        jedis.sadd("user", "中张");
        jedis.sadd("user", "大张");
        jedis.sadd("user", "老张");
        jedis.sadd("user", "漫路");
        //2. 删除
        jedis.srem("user", "小张");

        //3. 获取
        System.out.println(jedis.smembers("user"));//获取所有加入的value
        System.out.println(jedis.sismember("user", "漫路"));//判断"漫路"是否是user集合的元素
        System.out.println(jedis.srandmember("user"));//获取user集合中所有的数据
        System.out.println(jedis.scard("user"));//返回集合的元素个数
    }

执行完成后看可视化工具

5.redis排序

    /**
     * redis排序
     */
    @Test
    public void testSort() {
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //jedis 排序
        //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
        jedis.del("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));
        System.out.println("以排序:  "+jedis.sort("a"));//[1,3,6,9] //输入排序后结果
        System.out.println("排序后:  "+jedis.lrange("a", 0, -1));
    }

执行后控制台

6.查询所有key,并删除

    /**
     * 查询所有key,进行迭代删除数据
     */
    @Test
    public void getKeys(){
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        Set<String> keys = jedis.keys("*");
        if (keys.size()!=0){
            Iterator<String> iterator = keys.iterator();
            while (iterator.hasNext()){
                String next = iterator.next();
                System.out.println(next);
                jedis.del(next);
            }
        }else {
            System.out.println("无数据可删除~");
        }
    }

执行完成后看可视化工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值