Redis基本使用三(流水线与发布订阅以及超时命令)

开发环境:

  1. JDK11;
  2. Redis3.2;

使用流水线优化读写新能:

与传统关系型数据库类似,每次客户端与服务端建立连接是需要开销的,对于每一个客户端而言,将多个操作封装在一次连接内是十分有必要的,从而产生了Redis的流水线操作,应用步骤如下:

  1. 开启流水线;
  2. 加入命令;
  3. 执行流水线;

程序如下:

    /**
     * 10619ms
     * 普通执行
     */
    private static void test3()
    {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        long start = System.currentTimeMillis();
        for (int i = 0; i < 100000; i++)
        {
            // 写
            jedis.set("key_" + i, "value_" + i);
            // 读
            jedis.get("key_" + i);
        }
        long end = System.currentTimeMillis();
        System.out.println("普通耗时:" + (end - start));
    }

    /**
     * 630ms
     * 流水线执行
     */
    private static void test4()
    {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        long start = System.currentTimeMillis();
        // 开启流水线
        Pipeline pipeline=jedis.pipelined();
        for (int i = 0; i < 100000; i++)
        {
            // 写
            pipeline.set("key_" + i, "value_" + i);
            // 读
            pipeline.get("key_" + i);
        }
        // 执行流水线,但不返回读的结果,syncAndReturnAll方法会返回结果
        pipeline.sync();
        long end = System.currentTimeMillis();
        System.out.println("流水线耗时:" + (end - start));
    }

 

Redis的发布订阅:

刚开始学的时候笔者也是十分懵,这个发布订阅的作用不如流水线、锁机制等来的明显,其实捋一捋还是有点眉目的,Redis发布订阅无非就是通过Redis提供的渠道将消息发送到这个渠道上,而通过多个系统去监听这个渠道就可以获取消息。

典型应用的一个例子就是移动支付,当你通过微信或支付宝来消费时,就会把消费信息发布到该渠道,此时短信、微信或者支

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值