Redis基础
01、Redis 简介
02、Redis 安装
03、Redis 配置
04、Redis redis.conf 配置选项
05、Redis 数据类型
06、Redis 命令
07、Redis 键(key) 命令
08、Redis 字符串(String) 命令
09、Redis 哈希(Hash) 命令
10、Redis 列表(List) 命令
11、Redis 集合(Set) 命令
12、Redis 有序集合(sorted set) 命令
13、Redis HyperLogLog 命令
14、Redis 发布订阅
15、Redis 事务
16、Redis Script( 脚本 ) 命令
17、Redis 连接命令
18、Redis 服务器
19、Java 使用 Redis
20、Redis 数据备份与恢复
21、Redis 服务安全
22、Redis 性能测试
23、Redis 客户端连接
24、Redis 管道技术
25、Redis 分区
本文档使用 MrDoc 发布
-
+
首页
24、Redis 管道技术
Redis 是一种基于 **客户端-服务端** 模型以及 **请求/响应** 协议的 TCP 服务 所以一次 Redis 命令请求会遵循以下步骤 1、 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应; 2、 服务端处理命令,并将结果返回给客户端; 每一个单独的 Redis 命令都要重复以上步骤,如果要同时发送多个 Redis 命令,则非常消耗带宽和时间 ### Redis 管道技术 Redis 管道可以向 Redis 服务发送多个 Redis 命令,然后一次性读取所有服务端的响应 下面的Shell 范例使用 Redis 管道来一次性操作多个 Redis 命令 **注意 $ 符号是命令提示符 nc 命令 NetCat 的简写,你可以访问 Linux nc 了解更多** ```c $ (echo -en "PING\r\n SET site abcd\r\nGET site\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379 +PONG +OK $11 abcd :1 :2 :3 ``` 上面的Shell 命令,我们先使用 PING 命令查看 Redis 服务是否可用, 之后我们们设置了 site 的值为 abcd ,然后我们获取 site 的值并使得 visitor 自增 3 次 从返回的结果中我们可以看到这些命令是一次性向 Redis 服务提交,然后一次性读取所有服务端的响应 ### Redis 管道的优势 ------------ Redis 管道最显著的优势是提高了 Redis 服务的性能 **更多范例** 下面的Ruby 代码用来测试 Redis 管道技术对速度的提升效果 ```c require 'rubygems' require 'redis' def bench(descr) start = Time.now yield puts "#{descr}{Time.now-start} seconds" end def without_pipelining r = Redis.new 10000.times { r.ping } end def with_pipelining r = Redis.new r.pipelined { 10000.times { r.ping } } end bench( "without pipelining" ) { without_pipelining bench( "with pipelining" ) { with_pipelining ``` 在我的Mac OS 系统中运行代码,输出结果如下 ```c without pipelining 1.195238 seconds with pipelining 0.230783 seconds ```
李智
2025年3月17日 13:34
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码