redis-6-java客户端

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • [1. Java客户端](#1. Java客户端)
    • [1.1 链接](#1.1 链接)
    • [1.2 通用命令get,set](#1.2 通用命令get,set)
    • [1.3 exists,del](#1.3 exists,del)
    • [1.4 keys](#1.4 keys)
    • [1.5 expire,ttl,type](#1.5 expire,ttl,type)
    • [1.6 string命令-mget,mset,getrange,setrange](#1.6 string命令-mget,mset,getrange,setrange)
    • [1.7 append,incr,decr](#1.7 append,incr,decr)
    • [1.8 list命令-lpush,lrange,rpush](#1.8 list命令-lpush,lrange,rpush)
    • [1.9 lpop,rpop,blpop,,llen](#1.9 lpop,rpop,blpop,,llen)
    • [1.10 set命令-sadd,smembers,sismember,scard,spop](#1.10 set命令-sadd,smembers,sismember,scard,spop)
    • [1.11 sinter,sinterstore](#1.11 sinter,sinterstore)
    • [1.12 hash命令-hset,hget,hexists,hdel](#1.12 hash命令-hset,hget,hexists,hdel)
    • [1.13 hkeys,hvals,hmget,hmset](#1.13 hkeys,hvals,hmget,hmset)
    • [1.14 zset命令-zadd,zrange](#1.14 zset命令-zadd,zrange)
    • [1.15 zcard,zrem,zscore,zrank](#1.15 zcard,zrem,zscore,zrank)
  • 总结

前言

1. Java客户端

java生态中,分装了resp协议,实现的redis客户端有很多,比如jedis

复制代码
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>7.0.0</version>
            <scope>compile</scope>
        </dependency>

如果redis配置在服务器上,第一可以开放6379端口(但是不好)

我们还可以通过ssh的端口转发,把本地端口映射到linux端口上

所以访问本地的127.0.0.1:端口,就相当于访问服务器的Linux的6379了

点击服务器会话的链接属性,然后点击ssh,点击隧道,点击添加,源主机就是Windows上的8888,目标主机就是linux上的主机6379--》配置之后重新链接一下

这个隧道的生效必须是xshell上的ssh链接成功才可以

1.1 链接

java 复制代码
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:6379");//redis连接池
        try(Jedis jedis = jedisPool.getResource()){//从redis连接池中获取一个链接--》以后要记得释放放回池里面
            //redis的命令就是对应jedis的方法了
            String pong = jedis.ping();
            System.out.println(pong);
        }

1.2 通用命令get,set

java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        jedis.set("key2","222");
        SetParams setParams = new SetParams();
        setParams.ex(10);
        setParams.xx();
        jedis.set("key","333",setParams);
        String key = jedis.get("key");
        System.out.println("key:"+key);

xx就是有才生效,没有就不生效了

java 复制代码
        jedis.flushAll();
//        jedis.set("key","111");
        jedis.set("key2","222");
        SetParams setParams = new SetParams();
        setParams.ex(10);
        setParams.nx();
        jedis.set("key","333",setParams);
        String key = jedis.get("key");
        System.out.println("key:"+key);

这个就是不存在才生效

1.3 exists,del

java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        jedis.set("key2","222");
        boolean key = jedis.exists("key");
        System.out.println("key:"+key);
        long key1 = jedis.del("key");
        key = jedis.exists("key");
        System.out.println("删除元素个数:"+key1);
java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        jedis.set("key2","222");
        boolean key = jedis.exists("key");
        System.out.println("key:"+key);
        long key1 = jedis.del("key","key2","key3");
        System.out.println("删除元素个数:"+key1);

1.4 keys

java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        jedis.set("key2","222");
        jedis.set("key3","333");
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);

1.5 expire,ttl,type

java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        jedis.expire("key",10);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        long key = jedis.ttl("key");
        
        System.out.println(key);
java 复制代码
        jedis.flushAll();
        jedis.set("key","111");
        String key1 = jedis.type("key");
        System.out.println(key1);

1.6 string命令-mget,mset,getrange,setrange

java 复制代码
        jedis.flushAll();
        jedis.mset("key","111","key2","222");
        List<String> mget = jedis.mget("key", "key2");
        System.out.println(mget);

mget中某个key不存在----》对应key返回null

java 复制代码
        jedis.mset("key","abvdef");
        String key = jedis.getrange("key", 2, 5);
        System.out.println(key);
        jedis.setrange("key",2,"xyz");
        key = jedis.getrange("key", 0, -1);
        System.out.println(key);

1.7 append,incr,decr

java 复制代码
        jedis.flushAll();
        jedis.mset("key","abvdef");
        jedis.append("key","xyz");
        String key = jedis.getrange("key", 0, -1);
        System.out.println(key);
java 复制代码
        jedis.flushAll();
        jedis.mset("key","11");
        jedis.incr("key");
        String key = jedis.get("key");
        System.out.println(key);
java 复制代码
        jedis.flushAll();
        jedis.mset("key","11");
        jedis.decr("key");
        String key = jedis.get("key");
        System.out.println(key);

1.8 list命令-lpush,lrange,rpush

java 复制代码
        jedis.flushAll();
        jedis.lpush("key","11","22","33");
        List<String> key = jedis.lrange("key", 0, -1);
        System.out.println(key);
java 复制代码
        jedis.flushAll();
        jedis.rpush("key","11","22","33");
        List<String> key = jedis.lrange("key", 0, -1);
        System.out.println(key);

1.9 lpop,rpop,blpop,,llen

java 复制代码
        jedis.flushAll();
        jedis.lpush("key","11","22","33");
        String key1 = jedis.lpop("key");
        System.out.println(key1);
        List<String> key = jedis.lrange("key", 0, -1);
        System.out.println(key);
java 复制代码
        jedis.flushAll();
        List<String> key1 = jedis.blpop(3, "key");//返回的是一个二元组,一个是表示从哪个key删除的,第二个表示删除的是谁
        System.out.println(key1);
java 复制代码
        jedis.flushAll();
        List<String> key1 = jedis.blpop(100, "key");//返回的是一个二元组,一个是表示从哪个key删除的,第二个表示删除的是谁
        System.out.println(key1);

我们在另一个客户端上添加

java 复制代码
> lpush key 111
1
java 复制代码
        jedis.lpush("key","11","22","33");
        long key = jedis.llen("key");
        System.out.println(key);

1.10 set命令-sadd,smembers,sismember,scard,spop

java 复制代码
        jedis.flushAll();
        jedis.sadd("key","111","222","333");
        Set<String> key = jedis.smembers("key");
        System.out.println(key);
java 复制代码
        boolean key1 = jedis.sismember("key", "111");
        System.out.println(key1);
java 复制代码
        long key2 = jedis.scard("key");
        System.out.println("元素个数"+key2);
java 复制代码
        jedis.sadd("key","111","222","333");
        jedis.spop("key");
        Set<String> key = jedis.smembers("key");
        System.out.println(key);

1.11 sinter,sinterstore

java 复制代码
        jedis.flushAll();
        jedis.sadd("key","111","222","333");
        jedis.sadd("key2","111","222","444");
        Set<String> sinter = jedis.sinter("key", "key2");
        System.out.println(sinter);
        long sinterstore = jedis.sinterstore("key3", "key", "key2");
        System.out.println(sinterstore);
        Set<String> key3 = jedis.smembers("key3");
        System.out.println(key3);

1.12 hash命令-hset,hget,hexists,hdel

java 复制代码
        jedis.flushAll();
        jedis.hset("key","f1","222");
        Map<String,String> map = new HashMap<>();
        map.put("f2","222");
        map.put("f3","333");
        jedis.hset("key",map);
        String hget = jedis.hget("key", "h1");
        System.out.println(hget);
        boolean hexists = jedis.hexists("key", "f1");
        System.out.println(hexists);
        long del = jedis.del("key", "f1");
        System.out.println(del);
        hexists = jedis.hexists("key", "f1");
        System.out.println(hexists);

1.13 hkeys,hvals,hmget,hmset

java 复制代码
        jedis.flushAll();
        jedis.hset("key","f1","111");
        jedis.hset("key","f2","222");
        jedis.hset("key","f3","333");
        Set<String> key = jedis.hkeys("key");
        System.out.println(key);
        List<String> key1 = jedis.hvals("key");
        System.out.println(key1);
java 复制代码
        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> hmget = jedis.hmget("key", "f1", "f2", "f3");
        System.out.println(hmget);

1.14 zset命令-zadd,zrange

java 复制代码
        jedis.flushAll();
        jedis.zadd("key",10,"zhangsan");
        Map<String,Double> map = new HashMap<>();
        map.put("lisi",20.0);
        map.put("wangwu",30.0);
        jedis.zadd("key",map);
        List<String> key = jedis.zrange("key", 0, -1);
        System.out.println(key);
java 复制代码
        List<Tuple> key = jedis.zrangeWithScores("key", 0, -1);
        System.out.println(key);

1.15 zcard,zrem,zscore,zrank

java 复制代码
        jedis.flushAll();
        jedis.zadd("key",10,"zhangsan");
        Map<String,Double> map = new HashMap<>();
        map.put("lisi",20.0);
        map.put("wangwu",30.0);
        jedis.zadd("key",map);
        long len = jedis.zcard("key");
        System.out.println(len);
        long zrem = jedis.zrem("key", "zhangsan");
        System.out.println(zrem);
        List<Tuple> key = jedis.zrangeWithScores("key", 0, -1);
        System.out.println(key);
        Double zscore = jedis.zscore("key", "lisi");
        System.out.println(zscore);
        Long zrank = jedis.zrank("key", "lisi");
        System.out.println(zrank);

总结

相关推荐
毕设十刻4 小时前
基于Vue的餐厅收银系统s6150(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
大模型玩家七七4 小时前
证据不足 vs 证据冲突:哪个对模型更致命
数据库·人工智能·pytorch·深度学习·安全
@ chen4 小时前
Spring MVC 核心知识
java·spring·mvc
weisian1514 小时前
JVM--2-打破刻板印象:在Java中创建一个对象,一定是分配到堆内存吗?
java·开发语言·jvm·tlab·逃逸分析·标量替换
Traced back4 小时前
SQL Server数据自动清理系统最终版(C# WinForms完整源码)
数据库·c#·.net
onkel in blog4 小时前
【Java】Gradle 多模块项目实战:Spring Boot 微服务搭建全流程
java·spring boot·微服务·gradle
想要一只奶牛猫4 小时前
Spring IOC&DI(上)
java·后端·spring
cyforkk4 小时前
10、Java 基础硬核复习:多线程(并发核心)的核心逻辑与面试考点
java·开发语言·面试
鸽芷咕4 小时前
KingbaseES 统计信息深度调优:从自动收集到扩展统计,精准提升计划质量
数据库·mysql·性能优化·kingbasees·金仓数据库