1.redis请求执行原理
redis客户端与redis服务器之间使用TCP协议进行连接,一个科幻可以通过一个socket连接发送多个请求命令,
但每个请求命令发出后client通常会阻塞并等待redis服务器处理,redis服务器处理完毕后会将结果通过响应报文返回给client,因此当执行多条命令的时候都需要等待上一条命令执行完毕后才能执行。

2.合并请求
每次向redis服务器执行请求,都是一次TCP round trip,
因此将请求合并,作为一次请求,可以很好的提升性能。
示例如下:

import redis
cache = redis.Redis('127.0.0.1',
6379,
db=3,
password='test',
decode_responses=True
)
cache.delete('test_set')
for i in range(10):
cache.sadd('test_set',i)
print(cache.sinter('test_set'))

运行结果:

import redis
cache = redis.Redis('127.0.0.1',
6379,
db=3,
password='test',
decode_responses=True
)
values = [0,1,2,3,4,5,6,7,8,9]
cache.delete('test_set')
cache.sadd('test_set',*values)
print(cache.sinter('test_set'))

运行结果:

3.批量处理
每次向redis服务器发送请求,最后发送批量执行命令,redis服务器执行完毕,返回响应。
当不能合并请求时,如每次sadd的key值不同,可使用批量处理的方式,提升性能。
示例如下:

import redis
cache = redis.Redis('127.0.0.1',
6379,
db=3,
password='test',
decode_responses=True
)
for i in range(10):
cache.delete('test_set_'+str(i))
for i in range(10):
cache.sadd('test_set_'+str(i),i)
for i in range(10):
print(cache.sinter('test_set_'+str(i)))

运行结果:

import redis
cache = redis.Redis('120.26.217.149',
6379,
db=3,
password='51yunchedevredis',
decode_responses=True
)
pipeline = cache.pipeline()
for i in range(10):
pipeline.delete('test_set_'+str(i))
for i in range(10):
pipeline.sadd('test_set_'+str(i),i)
pipeline.execute()
for i in range(10):
print(cache.sinter('test_set_'+str(i)))

运行结果:

redis性能提升的更多相关文章

  1. redis性能提升之pipeline

    1.以前正常使用过程 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命令并将响应发送回客户端. 也就是每个命令都会有一来以往的过程 2.管道的意义 如果能将连续 ...

  2. Redis大幅性能提升之Batch批量读写

    Redis大幅性能提升之Batch批量读写 提示:本文针对的是StackExchange.Redis 一.问题呈现 前段时间在开发的时候,遇到了redis批量读的问题,由于在StackExchange ...

  3. memcache 与 redis 为web app 带来的性能提升

    memcache 与 redis 为web app 带来的性能提升 参考: 1. http://www.cnblogs.com/ToDoToTry/p/3513688.html

  4. Redis性能问题排查解决手册(七)

     阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Red ...

  5. paip.cache 缓存架构以及性能提升总结

    paip.cache 缓存架构以及性能提升总结 1         缓存架构以及性能(贯穿读出式(LookThrough) 旁路读出式(LookAside) 写穿式(WriteThrough) 回写式 ...

  6. Redis性能问题排查解决手册

    转自:http://www.cnblogs.com/mushroom/p/4738170.html 阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_comma ...

  7. 关于redis性能问题分析和优化

    一.如何查看Redis性能 info命令输出的数据可以分为10个分类,分别是: server,clients,memory,persistence,stats,replication,cpu,comm ...

  8. TOP100summit:【分享实录-华为】微服务场景下的性能提升最佳实践

    本篇文章内容来自2016年TOP100summit华为架构部资深架构师王启军的案例分享.编辑:Cynthia 王启军:华为架构部资深架构师.负责华为的云化.微服务架构推进落地,前后参与了华为手机祥云4 ...

  9. Redis(二十一):Redis性能问题排查解决手册(转)

    性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数 ...

随机推荐

  1. Oracle的REGEXP_SUBSTR函数简单使用方法

    REGEXP_SUBSTR延伸SUBSTR函数的功能.让你搜索一个正則表達式模式字符串. 这也相似于REGEXP_INSTR.而是返回子字符串的位置,它返回的子字符串本身. 语法 Oracle数据库中 ...

  2. 〖Linux〗联想K860/i Android 4.2及以上的Bootimg解压与打包工具

    因为自己有需要,所以花了一点时间来写了一下. 1. 解压工具 #!/bin/bash - #====================================================== ...

  3. dojo之配置dojoconfig

    官方教程:Configuring Dojo with dojoConfig例子: <-- set Dojo configuration, load Dojo --> <script& ...

  4. Mingyang.net:Eclipse定义Maven安装

    Eclipse默认会使用内置的Maven安装,这样就可能在导致Eclipse编译时下载一次依赖库,用CMD编译时再下载一次依赖库.打开Ecclipse -> Windows -> Pref ...

  5. mybatis标签之——关联映射

    关联关系是面向对象分析.面向对象设计最重要的知识.合理的关联映射将大大简化持久层数据的访问.关联关系大致分为以下三类: 一对一 一对多 多对多 1. 一对一 一对一关系推荐使用唯一主外键关联,即两张表 ...

  6. VC++6.0 IDE的工程用Code::Blocks来打开、编译、调试终极配置方案

    本篇文章转自 CSDN blog,转载请注明出处! 原文地址: http://blog.csdn.net/liquanhai/article/details/6618300 引子:竟然可以用Code: ...

  7. java多线程(二)之实现Runnable接口

    一.java多线程方式2: 实现Runnable接口 好处:a. 可以避免由于java单继承带来的局限性. b. 适合多个相同的程序的代码去处理同一个资源的情况, 把线程与程序的代码, 数据有效分离, ...

  8. Oracle实例

    ORA-12505 Listener refused the connection with following error:ORA-12505,TNS:listener 确定这是连接数据库的SID错 ...

  9. JavaScript 设计模式之单例模式

    一.单例模式概念解读 1.单例模式概念文字解读 单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象.在Ja ...

  10. 【LeetCode】142. Linked List Cycle II (2 solutions)

    Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cyc ...