jedis常用操作

在这里插入图片描述

package redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 一句话描述该类的功能
 *
 * @author hongjiawei
 * @version v1.0
 * @since 2021/6/1
 * ToSee https://blog.csdn.net/fanbaodan/article/details/89047909?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162251502116780366560503%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162251502116780366560503&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-5-89047909.pc_search_result_cache&utm_term=jedis%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84&spm=1018.2226.3001.4187
 */
public class RedisTest {
   
    //实例化一个客户端
    private static final Jedis jedis = new Jedis("localhost");

    public static void main(String[] args) {
   
        //ping下,看看是否通的
        System.out.println("Server is running: " + jedis.ping());
        string_Test();
        list_Test();
        zset_Test();
        tearDown();
    }

    /**
     * 测试string类型
     */
    public static void string_Test() {
   
        System.out.println("=============================测试string============================================");
        //保存一个
        String key = "string_key1";
        // 增加 存在则覆盖
        jedis.set(key, "localhost Connection  sucessfully");
        // 重复的不插入
        jedis.setnx(key, "hongjiawei");
        //获取一个
        String type = jedis.type(key);
        System.out.println(key + "type is: " + type);
        String value = jedis.get(key);
        System.out.println(key + "键值为: " + value);
        jedis.del(key);
        System.out.println(key + "键删除后 值为: " + jedis.get(key));
        System.out.println(key + "键存在?:" + jedis.exists(key));
    }

    /**
     * 测试list类型
     */
    public static void list_Test() {
   
        System.out.println("===============================测试list==========================================");
        String key = "list_key1";
        // 向左追加
        jedis.lpush(key, "list1", "list2");
        jedis.lpush(key, "list3", "list4");
        // 获取key对应list区间[i,j]的元素,注:从左边0开始,包头包尾
        List<String> list = jedis.lrange(key, 0, 1);
        System.out.println("向左追加后的 list: " + list);
        // key对应list ,左弹出栈一个元素
        String lpop = jedis.lpop(key);
        System.out.println("lpop value is: " + lpop);
        System.out.println("lpop value 之后 list 长度 is: " + jedis.llen(key));

        String key2 = "list_key2";
        // 向右追加
        jedis.rpush(key2, "list1", "list2");
        jedis.rpush(key2, "list3", "list4");
        // 获取key对应list区间[i,j]的元素,注:从左边0开始,包头包尾
        List<String> list2 = jedis.lrange(key2, 0, 1);
        System.out.println("向右追加后的 list: " + list2);
    }

    /**
     * 测试zset类型
     */
    public static void zset_Test() {
   
        System.out.println("===============================测试zset==========================================");
        String key = "zset_key1";
        // 插入元素
        // String key, double score, String member
        jedis.zadd(key, 12345, "dpLo6");
        jedis.zadd(key, 12, "dpLo2");
        jedis.zadd(key, 123, "dpLo3");
        jedis.zadd(key, 1, "dpLo1");
        jedis.zadd(key, 3456, "dpLo5");
        jedis.zadd(key, 657, "dpLo4");


        // 获取下标元素,闭区间 一般不用
        Set<String> zrange = jedis.zrange(key, 0, 1);
        System.out.println("zrange data is: " + zrange);

        // 获取ZSet 里下表[i,j] 区间元素Score - Val
        Set<Tuple> zrangeWithScores = jedis.zrangeWithScores(key, 1, 2);
        Map<Double, String> map = new HashMap<>();
        zrangeWithScores.forEach(item -> {
   
            double score = item.getScore();
            String element = item.getElement();
            map.put(score, element);
        });
        System.out.println(map);

        // 获取ZSet里score[i,j]分数区间的元素(Score-Val) 常用
        Set<String> zrangeByScore = jedis.zrangeByScore(key, 0, 200);
        System.out.println("zrangeByScore data  is: " + zrangeByScore);

        // zrangeByScore  根据偏移量获取阶段 根据业务场景去使用
        Set<String> zrangeByScoreAndOffect = jedis.zrangeByScore(key, 0, 200, 1, 2);
        System.out.println("zrangeByScoreAndOffect data is: " + zrangeByScoreAndOffect);
        Set<String> zrangeByScoreAndOffect2 = jedis.zrangeByScore(key, 0, 200, 2, 4);
        System.out.println("zrangeByScoreAndOffect2 data is: " + zrangeByScoreAndOffect2);
    }

    /**
     * 测试set类型
     * set 的方法都以s开头
     */
    public static void set_Test() {
   
        System.out.println("===============================测试set==========================================");
    }

    /**
     * 测试hash类型
     */
    public static void hash_Test() {
   
        System.out.println("===============================测试hash==========================================");
    }

    /**
     * 清空数据
     */
    public static void tearDown() {
   
        jedis.flushDB();
    }
}

/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=54087:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar:/Users/hongjiawei/IdeaProjects/outdoors_app/outdoors-starter/target/test-classes:/Users/hongjiawei/IdeaProjects/outdoors_app/outdoors-starter/target/classes:/Users/hongjiawei/.m2/repository/com/tuya/ostasos/ostasos-client/1.5.0/ostasos-client-1.5.0.jar:/Users/hongjiawei/.m2/repository/org/apache/skywalking/apm-toolkit-logback-1.x/6.0.0-GA/apm-toolkit-logback-1.x-6.0.0-GA.jar:/Users/hongjiawei/IdeaProjects/outdoors_app/outdoors-service/target/classes:/Users/hongjiawei/IdeaProjects/outdoors_app/outdoors-client/target/classes:/Users/hongjiawei/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar:/Users/hongjiawei/IdeaProjects/outdoors_app/outdoors-common/target/classes:/Users/hongjiawei/.m2/repository/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar:/Users/hongjiawei/.m2/repository/org/apache/commons/commons-lang3/3.9/commons-lang3-3.9.jar:/Users/hongjiawei/.m2/repository/joda-time/joda-time/2.9.3/joda-time-2.9.3.jar:/Users/hongjiawei/.m2/repository/com/alibaba/fastjson/1.2.70/fastjson-1.2.70.jar:/Users/hongjiawei/.m2/repository/com/tuya/basic/basic-client/2.8.8/basic-client-2.8.8.jar:/Users/hongjiawei/.m2/repository/org/freemarker/freemarker/2.3.26-incubating/freemarker-2.3.26-incubating.jar:/Users/hongjiawei/.m2/repository/com/luckycatlabs/SunriseSunsetCalculator/1.2/SunriseSunsetCalculator-1.2.jar:/Users/hongjiawei/.m2/repository/com/googlecode/xmemcached/xmemcached/2.4.6/xmemcached-2.4.6.jar:/Users/hongjiawei/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar:/Users/hongjiawei/.m2/repository/net/sourceforge/nekohtml/nekohtml/1.9.22/nekohtml-1.9.22.jar:/Users/hongjiawei/.m2/repository/xerces/xercesImpl/2.11.0/xercesImpl-2.11.0.jar:/Users/hongjiawei/.m2/repository/org/jdom/jdom/2.0.2/jdom-2.0.2.jar:/Users/hongjiawei/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar:/Users/hongjiawei/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar:/Users/hongjiawei/.m2/repository/commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3.jar:/Users/hongjiawei/.m2/repository/org/apache/httpcomponents/httpclient-cache/4.5.11/httpclient-cache-4.5.11.jar:/Users/hongjiawei/.m2/repository/org/apache/ant/ant/1.10.6/ant-1.10.6.jar:/Users/hongjiawei/.m2/repository/org/apache/ant/ant-launcher/1.10.6/ant-launcher-1.10.6.jar:/Users/hongjiawei/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar:/Users/hongjiawei/.m2/repository/com/belerweb/pinyin4j/2.5.1/pinyin4j-2.5.1.jar:/Users/hongjiawei/.m2/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar:/Users/hongjiawei/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/hongjiawei/.m2/repository/com/umeng/message/umengpush/0.0.1/umengpush-0.0.1.jar:/Users/hongjiawei/.m2/repository/org/json/json/20140107/json-20140107.jar:/Users/hongjiawei/.m2/repository/com/dbay/apns4j/dbay-apns4j/1.0/dbay-apns4j-1.0.jar:/Users/hongjiawei/.m2/repository/com/cloopen/rest/sdk/yuntong/2.0/yuntong-2.0.jar:/Users/hongjiawei/.m2/repository/com/drewnoakes/metadata-extractor/2.12.0/metadata-extractor-2.12.0.jar:/Users/hongjiawei/.m2/repository/com/adobe/xmp/xmpcore/6.0.6/xmpcore-6.0.6.jar:/Users/hongjiawei/.m2/repository/org/im4java/im4java/1.4.0/im4java-1.4.0.jar:/Users/hongjiawei/.m2/repository/org/aspectj/aspectjtools/1.9.4/aspectjtools-1.9.4.jar:/Users/hongjiawei/.m2/repository/com/fasterxml/uuid/java-uuid-generator/3.2.0/java-uuid-generator-3.2.0.jar:/Users/hongjiawei/.m2/repository/com/alibaba/dns-cache-manipulator/1.5.1/dns-cache-manipulator-1.5.1.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-transport-simple-http/1.4.0.7.TUYA/sentinel-transport-simple-http-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-transport-common/1.4.0.7.TUYA/sentinel-transport-common-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-parameter-flow-control/1.4.0.7.TUYA/sentinel-parameter-flow-control-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/googlecode/concurrentlinkedhashmap/concurrentlinkedhashmap-lru/1.4.2/concurrentlinkedhashmap-lru-1.4.2.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-annotation-aspectj/1.4.0.7.TUYA/sentinel-annotation-aspectj-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/org/aspectj/aspectjrt/1.9.4/aspectjrt-1.9.4.jar:/Users/hongjiawei/.m2/repository/org/aspectj/aspectjweaver/1.9.4/aspectjweaver-1.9.4.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-datasource-redis/1.4.0.7.TUYA/sentinel-datasource-redis-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-datasource-extension/1.4.0.7.TUYA/sentinel-datasource-extension-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/alibaba/csp/sentinel-spring/1.4.0.7.TUYA/sentinel-spring-1.4.0.7.TUYA.jar:/Users/hongjiawei/.m2/repository/com/tuya/rosetta/rosetta-client/2.6.5/rosetta-client-2.6.5.jar:/Users/hongjiawei/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.3.5/caffeine-2.3.5.jar:/Users/hongjiawei/.m2/repository/com/ibm/icu/icu4j/67.1/icu4j-67.1.jar:/Users/hongjiawei/.m2/repository/org/locationtech/spatial4j/spatial4j/0.8/spatial4j-0.8.jar:/Users/hongjiawei/.m2/repository/com/tuya/smart/smart-client/3.1.0/smart-client-3.1.0.jar:/Users/hongjiawei/.m2/repository/com/tuya/smart/smart-
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

矿泉水搬砖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值