码迷,mamicode.com
首页 > 其他好文 > 详细

redis性能提升

时间:2017-09-09 19:40:21      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:客户端   报文   .exe   批量   运行   round   执行   key   code   


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性能提升

标签:客户端   报文   .exe   批量   运行   round   执行   key   code   

原文地址:http://www.cnblogs.com/shijingjing07/p/7499044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!