通过Jedis操作Redis[通俗易懂]

通过Jedis操作Redis[通俗易懂]jedis是redis的java版本的客户端实现,Jedis提供了完整Redis命令。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

jedis是redis的java版本的客户端实现,Jedis提供了完整Redis命令。

目录

maven依赖

测试是否连接redis

Jedis操作String

输出结果

Jedis操作List

输出结果

Jedis操作Map

输出结果

Jedis操作Set

输出结果

Jedis操作Zset

输出结果

Jedis事务操作


maven依赖

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.7.0</version>
    </dependency>

测试是否连接redis

Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());

输出结果为PONG,则说明连接成功,否则连接失败,控制台会有异常信息。

Jedis操作String

        jedis.set("user", "zhangsan");
        // 获取存储的数据并输出
        System.out.println("redis 存储的字符串为: "+ jedis.get("user"));
        jedis.del("user");//删除
        System.out.println("redis 存储的字符串为: "+ jedis.get("user"));

输出结果

redis 存储的字符串为: zhangsan
redis 存储的字符串为: null

Jedis操作List

        //存储数据到列表中
        jedis.lpush("name-list", "zhangsan");
        jedis.lpush("name-list", "lisi");
        jedis.lpush("name-list", "wangwu");
        // 获取存储的数据并输出
        List<String> list = jedis.lrange("name-list", 0 ,2);
        for(int i=0; i<list.size(); i++) {
            System.out.println("列表项为: "+list.get(i));
        }

输出结果

列表项为: wangwu
列表项为: lisi
列表项为: zhangsan

Jedis操作Map

        Map<String,String> map=new HashMap<>();
        map.put("username","zhangsan");
        map.put("age","22");
        map.put("sex","男");
        //使用 hmset 设置值
        jedis.hmset("user",map);
        // hmget 获取值 取出user中的name 后面key可以跟多个
        List<String> result=jedis.hmget("user","username","age","sex");
        System.out.println(result);
        jedis.hdel("user","age");//移除某项

输出结果

[zhangsan, 22, 男]

Jedis操作Set

        jedis.sadd("users","zhangsan");
        jedis.sadd("users","lisi");
        System.out.println(jedis.smembers("users"));//获取加入的value值
        System.out.println(jedis.srem("users","zhangsan")); //移除某项

输出结果

[zhangsan, lisi]

Jedis操作Zset

        //存放数据 按score 进行排序
        jedis.zadd("user",12,"lisi");
        jedis.zadd("user",56,"zhangsan");
        jedis.zadd("user",89,"wangwu");
        jedis.zadd("user",58,"zhaoliu");
        System.out.println(jedis.zrange("user",0,4));//获取加入user中的value

输出结果

[lisi, zhangsan, zhaoliu, wangwu]

Jedis事务操作

        Transaction multi = jedis.multi();
        try {
            multi.set("user","zhangsan");
            multi.exec();//执行事务
        }catch (Exception e){
            multi.discard();//放弃事务
            e.printStackTrace();
        }finally {
            jedis.close();//关闭连接
        }

Jedis连接池操作

        //设置连接池的配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //设置连接池参数
        config.setMaxTotal(30);
        config.setMaxIdle(10);
        //获取连接池对象
        jedisPool = new JedisPool(config, "127.0.0.1", 6379);
        try{
            jedis = jedisPool.getResource();
        }catch(Exception e){
            e.printStackTrace();

        }

Jedis对key的其它操作命令

jedis.flushDB();//清空数据库
jedis.close();//关闭连接
jedis.exists("key");//是否存在名为key的key
Set<String> keys = jedis.keys("*");//获取所有的key
jedis.type("key");查看key的类型
jedis.randomKey();//随机一个键值
jedis.rename("oldkey","newkey");//重命名key
jedis.dbSize();//返回当前数据库所有key的数目
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195818.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dpdk 性能_第二系列什么意思

    dpdk 性能_第二系列什么意思首先,DPDK和内核网络协议栈不是对等的概念。DPDK只是单纯的从驱动拿数据,然后组织成数据块给人用,跑在用户态。功能相当于linux的设备无关接口层,处于socket之下,驱动之上。只不过linux协议栈的这部分在核心态。你说的包处理器,很多时候是不用linux内核协议栈的,而是用专用包处理程序,类似于DPDK加上层应用处理。通常会有些硬件加速器,包处理效率更高些。缺点是一旦用不上某些功能

    2022年9月20日
  • jQuery的下载以及使用[通俗易懂]

    jQuery的下载以及使用[通俗易懂]一、版本选择jQuery的版本有很多,大家在选择版本的时候,一般原则是越新越好,但其实不然,jQuery版本是在不断进步和发展的,最新版是当时最高技术水平,也是最先进的技术理念。如何选择jQuery版本是个值得思考的问题目前jQuery有三个大版本:1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4(2…

    2022年5月22日
  • iOS之深入解析Xcode 13正式版发布的40个新特性

    iOS之深入解析Xcode 13正式版发布的40个新特性一、前言Xcode13包括适用于iOS15、iPadOS15、tvOS15、watchOS8和macOSBigSur11.3的SDK。Xcode13ReleaseCandidate支持iOS9及更高版本、tvOS9及更高版本以及watchOS2及更高版本的设备上调试。Xcode13需要运行macOS11.3或更高版本的Mac。二、通用Xcode13包括对Swift并发编程的原生支持、对XcodeCloud持续集成和

    2022年4月29日
  • AngularJS进阶(二)AngularJS路由问题解决

    AngularJS进阶(二)AngularJS路由问题解决AngularJS路由问题解决遇到了一个棘手的问题:点击优惠详情时总是跳转到药店详情页面中去。再加一层地址解决了,但是后来发现问题还是来了:Couldnotresolve’yhDtlMaintain/yhdetail’fromstate’yhMaintain’药店详情http://192.168.1.118:8088/lmapp/index.html#/0优惠券详情

    2022年7月25日
  • win7、win10进程pid4占用80端口的解决办法

    win7、win10进程pid4占用80端口的解决办法

    2021年10月12日
  • arpspoof怎么用_技术分析实战工具

    arpspoof怎么用_技术分析实战工具需求太奇葩!arpspoof渗透工具使用方法

    2022年10月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号