• 【三】Redis从入门到放弃---Jedis操作Redis


    (1)Jedis是什么?

    Jedis是Redsi官方首选的java客户端开发包,使用Jedis可以很方便的操作Redis,使用方法跟Redis的操作命令差不多的,例如:jedis.flushDB()清空数据,jedis.set("key1","value1")给key1设置数据,jedis.exists("key1")判断键是否存在等等。

    下面简单的介绍Jedis是如果操作Redis的:

    1. pom.xml添加依赖
    2. 连接Redis: 指定Redis服务Host和port,设置密码(没有的话不需要),操作Redis,最后关闭Redis连接。

    (2)Jedis的maven依赖

    <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
    </dependency>

    (3)Jedis对key、String、List、Set、Hash、Zset的操作

    public static void main(String[] args) {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            // 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
            jedis.auth("*******");
            String pong = jedis.ping();
            System.out.println("连接成功:" + pong);
            jedis.close();
        }

    控制台输出:

    连接成功:PONG

    操作key

    
        @Test
        public void demo1() throws InterruptedException {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            jedis.auth("******");
    
            jedis.setex("k1", 10, "v1");//设置过期时间10秒
            jedis.set("k2", "v2");
            jedis.set("k3", "v3");
            //获取所有的key
            Set<String> keys = jedis.keys("*");
            System.out.println(keys.size());
            for (String key : keys) {
                System.out.println(key);
            }
    
            TimeUnit.MILLISECONDS.sleep(5000);//睡眠5秒钟
            System.out.println(jedis.exists("k1"));//k1是否存在
            System.out.println(jedis.ttl("k1"));//k1剩余有效时间
            System.out.println(jedis.get("k2"));//获取k1的值
            jedis.close();
        }

    控制台输出:

    对String类型的操作

    @Test
    public void demo2() {
    Jedis jedis = new Jedis("47.106.195.84", 6379);
    jedis.auth("******");
    
    jedis.set("str0","v0");//单个设置值
    jedis.mset("str1", "v1", "str2", "v2", "str3", "v3");//批量设置值
    jedis.setex("str4",10,"v4");//设置有效时间10秒
    
    jedis.append("str0","20210731");//在某个key后追加数据
    
    System.out.println(jedis.substr("str0",0,-1));//截取某个key的值,从0到-1是截取所有
    
    System.out.println(jedis.get("str4"));//获取单个key的值
    System.out.println(jedis.mget("str1", "str2", "str3"));//获取多个key的值
    }

    控制台输出:

    对List类型的操作

    @Test
        public void demo3() {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            jedis.auth("*****");
    
            jedis.lpush("listKey","1","2","3");//从左边添加多个数据
            jedis.rpush("listKey","5","6","7");//从右边添加多个数据
            System.out.println(jedis.lrange("listKey", 0, -1));//获取该key所有值
    
            jedis.lpop("listKey");//从左边吐出一个
            jedis.rpop("listKey");//从右边吐出一个
            System.out.println(jedis.lrange("listKey", 0, -1));//获取该key所有值
    
            System.out.println(jedis.llen("listKey"));//获取key对应list长度
    
            jedis.lset("listKey",1,"8");//修改key对应list下标n对应的元素
            System.out.println(jedis.lrange("listKey", 0, -1));//获取该key所有值
    
            System.out.println(jedis.lindex("listKey",3));//获取key对应list下标3对应元素
            System.out.println(jedis.sort("listKey"));//key对应list的元素从小到大排序
    
        }

    控制台输出:

    对Set类型的操作

        @Test
        public void demo4() {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            jedis.auth("*****");
    
            jedis.sadd("k1", "v1");
            jedis.sadd("k1", "v2");
            jedis.sadd("k1", "v3");
            jedis.sadd("k1", "v4");
            Set<String> smembers = jedis.smembers("k1");//获取该集合的所有值
            for (String k : smembers) {
                System.out.println(k);
            }
            //判断是否含有该value
            System.out.println(jedis.sismember("k1", "v2"));
            jedis.srem("k1", "v2");//删除集合中的某个元素
            System.out.println(jedis.smembers("k1"));
    
            jedis.sadd("k2","v1","v2","v3","v4");
            System.out.println(jedis.scard("k2"));//获取set里元素个数
    
    
            System.out.println(jedis.sinter("k1","k2"));//获取k1和k2下对应元素的交集
            System.out.println(jedis.sunion("k1","k2"));//获取k1和k2下对应元素的并集
            System.out.println(jedis.sdiff("k1","k2"));//获取k1和k2下对应元素的差集
        }

    控制台输出:

    对Hash类型的操作

    @Test
        public void demo5() {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            jedis.auth("******");
    
            jedis.hset("hash1", "userName", "妖妖灵");
            System.out.println(jedis.hget("hash1", "userName"));
    
            Map<String, String> map = new HashMap<String, String>();
            map.put("age", "18");
            map.put("telphone", "1333333333");
            map.put("address", "guangzhou");
            map.put("email", "yaoyaoling@163.com");
            jedis.hmset("hash2", map);
            System.out.println(jedis.hgetAll("hash2"));//获取hashMap下所有key-value元素
            System.out.println(jedis.exists("hash2","age"));//判断key里面是否有age这个field
            System.out.println(jedis.hvals("hash2"));//获取hashMap下的所有value
            System.out.println(jedis.hmget("hash2", "telphone", "email"));
            System.out.println(jedis.hlen("hash2"));//获取key下的元素个数
    
        }

    控制台输出

    对Zset类型的操作

    @Test
        public void demo6() {
            Jedis jedis = new Jedis("47.106.195.84", 6379);
            jedis.auth("******");
    
            jedis.zadd("zset01", 100d, "z1");
            jedis.zadd("zset01", 90d, "z2");
            jedis.zadd("zset01", 80d, "z3");
            jedis.zadd("zset01", 70d, "z4");
    
            //返回有序集合:从最低分到最高分的方式排序集合
            Set<String> zrange = jedis.zrange("zset01", 0, -1);
            System.out.println(zrange);
    
        }

    控制台输出

  • 相关阅读:
    Android移动view动画问题
    GIT常用操作
    linux下mysql安装
    jdk安装
    linux下Tomcat安装
    猜测性能瓶颈
    MySQL没有远程连接权限设置
    linux下jmeter使用帮助
    BI的核心价值[转]
    BI与大数据
  • 原文地址:https://www.cnblogs.com/yaoyaoling/p/15085379.html
Copyright © 2020-2023  润新知