当前位置: 首页 > article >正文

Redis maven项目 jedis 客户端操作(二)

(1)List类型value的方法调用样例,包含lpush,lrange,lpop,rpop,blpop,llen

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

public class RedisDemoList {
    public static void test1(Jedis jedis) {
        System.out.println("lpush  lrange:");
        jedis.flushAll();
        jedis.lpush("key","1","2","3","4","5","6","7","8","9");
        List<String> list = jedis.lrange("key",0,-1);
        System.out.println(list);
    }
    public static void test2(Jedis jedis) {
        System.out.println("rpush:");
        jedis.flushAll();
        jedis.rpush("key","1","2","3","4","5");
        List<String> list = jedis.lrange("key",0,-1);
        System.out.println(list);
    }
    public static void test3(Jedis jedis) {
        System.out.println("lpop:");
        jedis.flushAll();
        jedis.rpush("key","1","2","3","4","5");
        List<String> list = jedis.lrange("key",0,-1);
        System.out.println(list);
        String result=jedis.lpop("key");
        list = jedis.lrange("key",0,-1);
        System.out.println(list);
        for (int i = 0; i < 5; i++) {
            String x = jedis.lpop("key");
            System.out.println(x);

        }

    }
    public static void test4(Jedis jedis) {
        System.out.println("rpop:");
        jedis.flushAll();
        jedis.rpush("key","1","2","3","4","5");
        for (int i = 0; i < 6; i++) {
            String x = jedis.rpop("key");
            System.out.println(x);
        }
    }
    public static void test5(Jedis jedis) {
        System.out.println("blpop:");
        jedis.flushAll();
        //返回结果是二元组,第一个是弹出的哪个key,第二个是弹出的value
        List<String>result =jedis.blpop(100,"key");
        System.out.println(result.get(0));
        System.out.println(result.get(1));
    }
    public static void test6(Jedis jedis) {
        System.out.println("llen:");
        jedis.flushAll();
        jedis.rpush("key","1","2","3","4","5");
        long length=jedis.llen("key");
        System.out.println(length);
    }
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
            try (Jedis jedis = jedisPool.getResource()) {
                test6(jedis);
            }

    }
}

(2)hash类型value的方法调用,包含hset,hget,hexists,hdel,hkeys,hvals,hmget,hmset:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

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

public class RedisDemoHash {
    public static void test1(Jedis jedis) {
        System.out.println("hset 和 hget :");
        jedis.flushAll();
        jedis.hset("key","f1","111");
        Map<String,String> fields = new HashMap<String, String>();
        fields.put("f2","222");
        fields.put("f3","333");
        jedis.hset("key",fields);
        String result =jedis.hget("key","f1");
        System.out.println(result);
        result = jedis.hget("key","f2");
        System.out.println(result);
        result = jedis.hget("key","f100");
        System.out.println(result);

    }
    public static void test2(Jedis jedis) {
        System.out.println("hexists :");
        jedis.flushAll();
        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");
        boolean result = jedis.hexists("key","f1");
        System.out.println(result);
        result = jedis.hexists("key","f100");
        System.out.println(result);
    }
    public static void test3(Jedis jedis) {
        System.out.println("hdel :");
        jedis.flushAll();
        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");
        long count = jedis.hdel("key","f1","f2");
        System.out.println(count);
        boolean result = jedis.hexists("key","f1");
        System.out.println(result);
        result = jedis.hexists("key","f3");
        System.out.println(result);
    }
    public static void test4(Jedis jedis) {
        System.out.println("hkeys 和 hvals");
        jedis.flushAll();

        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");
        Set<String> keys = jedis.hkeys("key");
        System.out.println(keys);
        List<String> values = jedis.hvals("key");
        System.out.println(values);
    }
    public static void test5(Jedis jedis) {
        System.out.println("hmget 和 hmset :");
        jedis.flushAll();
        Map<String,String> map = new HashMap<>();
        map.put("f1","111");
        map.put("f2","222");
        map.put("f3","333");
        jedis.hmset("key",map);
        List<String> values = jedis.hmget("key","f1","f2","f3");
        System.out.println(values);
    }
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
        try (Jedis jedis = jedisPool.getResource()) {
            test5(jedis);
        }
    }
}

(3)Set类型value的方法调用,包含sadd,smembers,sismember,scard,spop,sinter,sinterstore

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Set;

public class RedisDemoSet {
    public static void test1(Jedis jedis){
        System.out.println("sadd 和 smembers:");
        jedis.flushAll();
        jedis.sadd("key","1","2","3","4","5","6","7","8","9");
        Set<String> set = jedis.smembers("key");
        set.forEach(System.out::print);
    }
    public static void test2(Jedis jedis){
        System.out.println("sismember:");
        jedis.flushAll();
        jedis.sadd("key","1","2","3","4","5","6","7","8","9");
        System.out.println(jedis.sismember("key", "111"));
    }
    public static void test3(Jedis jedis){
        System.out.println("scard:");
        jedis.flushAll();
        jedis.sadd("key","1","2","3","4","5","6","7","8","9");
        long count = jedis.scard("key");
        System.out.println(count);
    }
    public static void test4(Jedis jedis){
        System.out.println("spop:");
        jedis.flushAll();
        jedis.sadd("key","1","2","3");
        String result = jedis.spop("key");
        System.out.println(result);
    }
    public static void test5(Jedis jedis){
        System.out.println("sinter :");
        jedis.flushAll();
        jedis.sadd("key","1","2","3");
        jedis.sadd("key2","1","2","4");
        Set<String> result= jedis.sinter("key","key2");
        System.out.println(result);
    }
    public static void test6(Jedis jedis){
        System.out.println("sinterstore:");
        jedis.flushAll();
        jedis.sadd("key","1","2","3","4");
        jedis.sadd("key2","1","2","4","5");
        jedis.sinterstore("key3","key","key2");
        Set<String> result = jedis.smembers("key3");
        System.out.println(result);
    }
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
        try (Jedis jedis = jedisPool.getResource()) {
            test6(jedis);
        }
    }
}

(4)zset类型value的方法调用,包含zadd,zrange,zcard,zrem,zscore,zrank

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

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

public class RedisDemozset {
    public static void test1(Jedis jedis){
        System.out.println("zadd 和 zrange");
        jedis.flushAll();

        jedis.zadd("key",99,"kzf");
        Map<String,Double>map = new HashMap<>();
        map.put("whx",88.0);
        map.put("lyz",77.0);
        jedis.zadd("key",map);
        //这里考虑到zset有序性的特点,所以用List而不是Set,虽然也具有唯一性
        List<String> result = jedis.zrange("key",0,-1);
        System.out.println(result);
        List<Tuple> tuples = jedis.zrangeWithScores("key",0,-1);
        System.out.println(tuples);
        String member = tuples.get(0).getElement();
        Double score = tuples.get(0).getScore();
        System.out.println(member);
        System.out.println(score);

    }
    public static void test2(Jedis jedis){
        System.out.println("zcard:");
        jedis.flushAll();
        jedis.zadd("key",99,"kzf");
        jedis.zadd("key",88,"whx");
        jedis.zadd("key",77,"lyz");
        long len = jedis.zcard("key");
        System.out.println(len);
    }
    public static void test3(Jedis jedis){
        System.out.println("zrem:");
        jedis.flushAll();
        jedis.zadd("key",99,"kzf");
        jedis.zadd("key",88,"whx");
        jedis.zadd("key",77,"lyz");
        long result = jedis.zrem("key","whx");
        System.out.println(result);
        List<Tuple> tuples = jedis.zrangeWithScores("key",0,-1);
        System.out.println(tuples);
    }
    public static void test4(Jedis jedis){
        System.out.println("zscore:");
        jedis.flushAll();
        jedis.zadd("key",99,"kzf");
        jedis.zadd("key",88,"whx");
        jedis.zadd("key",77,"lyz");
        //这里的Double使用包装类,因为可能获取分数的member不存在
        //这时候就可以正常返回空值,而不是空指针异常
        Double score= jedis.zscore("key","whx");
        System.out.println(score);
        score = jedis.zscore("key","zzz");
        System.out.println(score);
    }
    public static void test5(Jedis jedis){
        System.out.println("zrank:");
        jedis.flushAll();
        jedis.zadd("key",99,"kzf");
        jedis.zadd("key",88,"whx");
        jedis.zadd("key",77,"lyz");
        //主要rank是从0开始的,不是1,zset默认按分数升序,同分数看member名的字典序
        Long rank = jedis.zrank("key","whx");
        System.out.println(rank);
    }
    public static void main(String[] args) {
        JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
        try (Jedis jedis = jedisPool.getResource()) {
            test5(jedis);
        }

    }
}

(5)ps

代码中我给出了一些代表我自己理解的注释,并不一定完全正确,我希望的是每个读者都有自己独立思考,辩证思考的能力,如果该注释对你有帮助,我很是开心,如果你认为哪里不太准确,欢迎大佬私聊我,或者发在评论区指出,感恩!!!


http://www.kler.cn/a/572671.html

相关文章:

  • 【电控笔记z69】电机选型-机械特性
  • 数据流图(实例)
  • 搜好货平台按关键字搜索商品API接口开发实战(Python版
  • 文本处理Bert面试内容整理-BERT的应用场景有哪些?
  • CSS 中等比例缩放的演变:从传统技巧到 aspect-ratio 属性
  • 宁波福尔达智能科技-再次续订MappingSpace
  • linux服务器根据内核架构下载各种软件依赖插件(例子:Anolis服务器ARM64架构内核Nginx依赖插件下载)
  • Adam优化器
  • kubectrl 使用多k8s 配置文件
  • 后端架构模式之-BFF(Backend-For-Frontend)
  • 国科大——数据挖掘(0812课程)——考试真题
  • ASP.NET Core JWT认证与授权
  • 【玩转正则表达式】将正则表达式中的分组(group)与替换进行结合使用
  • 深入C语言:指针与数组的经典笔试题剖析
  • 大语言模型(LLM)和嵌入模型的统一调用接口
  • 谈谈常用的分布式 ID 设计方案?
  • MySQL数据库只能通过localhost访问,无法通过IP访问?两步快速定位和解决
  • stm32主从机硬件IIC实现
  • Windows10下本地搭建Manim环境
  • 新品速递 | 多通道可编程衰减器+矩阵系统,如何破解复杂通信测试难题?