pipeline管道可以减少后端与redis的连接次数,从而实现了优化。

  • 原理如下:

使用方法:

未使用pipeline前:

strict_redis = get_redis_connection('sms_codes')  # type:StrictRedis
strict_redis.setex('sms_%s' % mobile,constants.SMS_CODE_REDIS_EXPIRES, sms_codes)
strict_redis.setex('send_flag_%s' % mobile,constants.SEND_SMS_CODE_INTERVAL, 1)

使用pipeline后:

strict_redis = get_redis_connection('sms_codes')  # type:StrictRedis
pipeline = strict_redis.pipeline() # type:pipeline
pipeline.setex('sms_%s' % mobile,constants.SMS_CODE_REDIS_EXPIRES, sms_codes)
pipeline.setex('send_flag_%s' % mobile,constants.SEND_SMS_CODE_INTERVAL, 1)
pipeline.execute()

拓展:

pipline.execute()有返回值,是一个列表,返回值的True或False,代表执行成功或失败

使用pipeline管道执行redis命令的更多相关文章

  1. redis如何执行redis命令

    Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...

  2. 执行redis命令redis-trib.rb查看集群信息报错cannot load such file -- redis (LoadError)

    问题描述: 在执行redis-trib.rb命令查看集群状态的时候,报错: [aiprd@hadoop1 ~]$ redis-trib.rb check Traceback (most recent ...

  3. [常见问题]在Linux下执行Redis命令不起作用.

    redis 127.0.0.1:6379> 这个后面无论输入什么命令都没有返回 ok 或者其他的信息,一直保持截图的状态: 解决方法:在SecureCRT中设置Options-->Sess ...

  4. c#中用lua脚本执行redis命令

    直接贴出代码,实现执行lua脚本的方法,用到的第三方类库是 StackExchange.Redis(nuget上有) 注:下面的代码是简化后的,实际使用要修改, using System; using ...

  5. 脚本批量执行Redis命令

    1.将命令写在文件中 数据量比较大的话,建议用程序去生成文件.例如: List<String> planIdList = planDao.findAll().parallelStream( ...

  6. Delphi通过管道执行外部命令行程序(cmd)并获取返回结果

    该代码片段来自于: http://www.sharejs.com/codes/delphi/8999,发现好多代码,想用的时候找不到,记录一下备用 function RunDosCommand(Com ...

  7. Redis命令

    redis的常用命令主要分为两个方面.一个是键值相关命令.一个是服务器相关命令(redis-cli进入终端) 1.键值相关命令 keys * 取出当前所有的key exists name 查看n是否有 ...

  8. Jenkins: 执行 PowerShell 命令

    Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...

  9. 在Jenkins中执行 PowerShell 命令实现高效的CD/CI部署

    相比于cmd,powershell支持插件.语法扩展和自定义扩展名,是智能化部署中闪闪的新星,越来越多的开发者偏爱使用Powershell. 如何让Jenkins支持Powershell呢?本文即展开 ...

随机推荐

  1. 关于c++的头文件依赖

    正在看google c++编程规范,里面对头文件依赖是这么说的: 使用前置声明(forward declarations)尽量减少.h文件中#include的数量. 当一个头文件被包含的同时也引入了一 ...

  2. 团队项目-第五次Scrum 会议

    时间:10.31 时长:30分钟 地点:教室(主南201) 工作情况 团队成员 已完成任务 待完成任务 解小锐 修复在接受任务时,前端和后端对接中的bug 完成员工信息的简单初始化 陈鑫 完成hire ...

  3. 正则匹配java多行注释

    类似: /** * This method was generated by MyBatis Generator. * This method returns the value of the dat ...

  4. laydate日期控件

    <!-- laydate 日期时间控件 下载地址 http://www.layui.com/laydate/ 这里用到版本为 layDate-v5.0.2 下载后将 laydate 文件夹放到项 ...

  5. Zebra - zebra command to get printer status

    /// <summary> /// determine whether the network printer is in pause. /// </summary> /// ...

  6. Concurrent.util中的一些类

    package com.bjsxt.height.concurrent019; import java.io.IOException; import java.util.Random; import ...

  7. 框架开发中的junit单元测试

    首先写一个测试用的公共类,如果要搭建测试环境,只要继承这个公共类就能很容易的实现单元测试,代码如下 import org.junit.runner.RunWith; import org.spring ...

  8. P4109 [HEOI2015]定价

    题目描述 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很多,因此也是商 ...

  9. P4462 [CQOI2018]异或序列

    题目描述 已知一个长度为n的整数数列 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​ ,给定查询参数l.r,问在 al,al+1,...,ara_l,a_{l+1 ...

  10. Mybatis缓存机制及mybatis的各个组成部分

    Mybatis 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 ...