redis02_jedis的基本使用

一、 jedis的简介

        jedis 是redis java连接工具 ,引入jar包后,就可以使用java代码操作redis。

二、redis修改远程可以连接

        vim /usr/redis/bin/redis.conf 

        :69 bind 127.0.0.1

         把当前redis实例和本机127.0.0.1进行绑定,只能本机客户端进行连接

         如果想让其他任何机器进行访问该实例,需要把该实例与当前主机IP进行绑定

        :69 bind 192.168.140.41

从新启动服务

 使用客户端直接连接时出错

/usr/redis/bin/redis-server  /usr/redis/bin/redis.conf 

连接要换为连接IP地址:

/usr/redis/bin/redis-cli -h 192.168.140.41

 

2.2、 创建项目引入jar,编写代码

 <!-- jedis包 -->
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>4.2.2</version>
</dependency>   

具体代码:

     1、进行字符串操作

public class ConnectRedisTest {
    public static void main(String[] args) {
        // 查看源码  会看到使用host和post的构造
        Jedis jedis = new Jedis("192.168.140.41", 6379);
        // 测试是否可以联通
        String pingResult = jedis.ping();
        System.out.println("是否联通:"+pingResult);
        if (!"PONG".equals(pingResult)){
            System.out.println("联不通");
            return;
        }else {
            System.out.println("可以联通");
        }

        // 查询
        Set<String> keyList = jedis.keys("*");
        System.out.println("已经存储的key为:");
        for (String key : keyList) {
            System.out.print(key+"\t");
        }
        System.out.println();
        System.out.println("-----------------------------------------");

        // 进行字符串操作
        jedis.set("aaa","111");
        String aaa = jedis.get("aaa");
        System.out.println("redis存储的字符串为:"+jedis.get("aaa"));

        // 添加多个元素
        String mset = jedis.mset("bbb", "222", "ccc", "333", "ddd", "444");

        System.out.println("====================================");

        // 获取多个key的value值
        List<String> values = jedis.mget("aaa", "bbb", "ccc", "ddd");
        for (String value : values) {
            System.out.print(value+"\t");
        }
        System.out.println("\n"+"==================================");

        // 指定kay的value值递增
        int i=0;
        while (i<10){
            long incr = jedis.incr(aaa);
            System.out.print(incr+"\t");
            i++;
        }
        System.out.println();
        // 指定kay的value值递减
//        while (i<10){
//            long decr = jedis.decr(aaa);
//            System.out.print(decr+"\t");
//            i++;
//        }
    }
}

打印结果:

2、对 hashs 散列类型进行操作

        // 单个存值
        jedis.hset("mapTest","a","111");
        // 单个取值
        System.out.println("散列hashmap取值:"+jedis.hget("mapTest", "a"));

        // 添加多个值
        Map<String,String> hashMap = new HashMap<>();
        hashMap.put("b","222");
        hashMap.put("c","333");
        hashMap.put("d","444");
        jedis.hmset("mapTest", hashMap);
        // 获取多个值
        List<String> valuesMap = jedis.hmget("mapTest", "a", "b", "c", "d");
        for (String value : valuesMap) {
            System.out.print("散列hashmap取多值:"+value+"\t");
        }
        System.out.println();


        // 获取key中多个filed属性值
        Map<String, String> map = jedis.hgetAll("mapTest");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("key为:"+entry.getKey()+"\tvalue为:"+entry.getValue());
        }
        // 获取key中的所有filed
        Set<String> mapTest = jedis.hkeys("mapTest");
        System.out.print("fields为:");
        for (String s : map.keySet()) {
            System.out.print(s+"\t");
        }
        // 获取key中的所有filed的value值
        List<String> mapTest1 = jedis.hvals("mapTest");
        System.out.println("\nvalue为");
        for (String s : mapTest1) {
            System.out.print(s+"\t");
        }

        // 获取key的长度
        long mapTest2 = jedis.hlen("mapTest");
        System.out.println("\nmapTest的长度为:"+mapTest2);
        //  删除kay中的某个filed
        long hdel = jedis.hdel("mapTest", "d");

打印结果:

3、 lists 列表类型的操作

        // 进行list操作
        String flushDB = jedis.flushDB();
        // 添加元素
        long lpush = jedis.lpush("listTest", "aa", "11", "bb", "22");
        System.out.println("成功添加:"+lpush+"条数据");
        System.out.print("遍历值为:");
        for (long l = 0; l < jedis.llen("listTest"); l++) {
            System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"\t");
        }

        // 在尾部添加元素
        jedis.rpush("listTest","cc","33");
        System.out.print("\n遍历值为:");
        for (long l = 0; l < jedis.llen("listTest"); l++) {
            System.out.print("下标"+l+"的值为:"+jedis.lindex("listTest",l)+"\t");
        }

        // 移除并返回key的第一个元素
        String listTest = jedis.lpop("listTest");
        System.out.println("\n删除第一个元素"+listTest);

        // 移除并返回key的最后一个元素
        String listTest1 = jedis.rpop("listTest");
        System.out.println("删除最后一个元素"+listTest1);

        // 获取key的长度
        System.out.println("key的长度为:"+jedis.llen("listTest"));

打印结果:

 4、sets 集合类型的操作

        // 添加元素
        long sadd = jedis.sadd("setTest", "aaa", "111", "bbb", "222");
        System.out.println("添加 "+sadd+"条数据");

        // 获取key中存储的所有元素值
        Set<String> setTest = jedis.smembers("setTest");
        System.out.print("储存的元素值为:");
        for (String s : setTest) {
            System.out.print(s+"\t");
        }

        // key中是否含有 value  有返回1 没有返回0
        boolean sismember = jedis.sismember("setTest", "aaa");
        System.out.println("\n是否含有该元素:"+sismember);

        // 获取集合key的长度
        System.out.println("setTest的长度为:"+jedis.scard("setTest"));

        // 随机获取 key 中的 x 个元素
        List<String> setTest1 = jedis.srandmember("setTest", 2);
        System.out.println("随机获取2个元素:"+setTest1);

        jedis.sadd("setTest2", "aaa", "333", "ccc", "222");
        //  获取 key1 和 key2的共有元素
        Set<String> sinter = jedis.sinter("setTest", "setTest2");
        System.out.println("共有元素为:"+sinter);

        // 返回 key2 与 key3 共有元素的个数  并储存在集合key1中
        long sinterstore = jedis.sinterstore("setTest3", "setTest", "setTest2");
        System.out.println("有几个共同元素:"+sinterstore);
        System.out.println("setTest3存入的共同值:"+jedis.smembers("setTest3"));

        // 移除 key 中的一个或多个成员元素,不存在的成员元素会被忽略
        long srem = jedis.srem("setTest", "aaa", "fgfg");
        System.out.println("移除了:"+srem);

        // 移除 key 中的一个或多个随机元素,移除后会返回移除的元素
        Set<String> setTest2 = jedis.spop("setTest2", 2);
        System.out.println("随机移除2个元素"+setTest2);

打印结果:

5、sorted sets 有序集合类型

        // 添加单条数据
        long zadd = jedis.zadd("sortedSets", 11.1, "lisi");
        System.out.println("成功添加"+zadd);
        // 添加多条
        Map<String,Double> map1 = new HashMap<>();
        map1.put("zhangsan",22.2);
        map1.put("zhaoliu",33.3);
        map1.put("wangwu",44.4);
        long sortedSets = jedis.zadd("sortedSets", map1);
        System.out.println("成功添加多条:"+sortedSets);

        // 返回 key 中是否含有元素并删除   有返回1  没有返回0
        long zrem = jedis.zrem("sortedSets", "zhaoliu");
        System.out.println("是否有这个元素:"+zrem);

        // 返回 key 中元素个数
        long sortedSets1 = jedis.zcard("sortedSets");
        System.out.println("sortedSets中有"+sortedSets1+"个元素");

        // 返回 key 中分数在  x--y 这个区间的元素个数
        long sortedSets2 = jedis.zcount("sortedSets", 0, 60);
        System.out.println("这个区间的元素个数为:"+sortedSets2);

        //  返回 key 中  数字在 b--c 这个范围的元素
        List<String> list = jedis.zrangeByScore("sortedSets", 0, 60);
        System.out.println(list);

 结果打印:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡本蔡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值