初试Redis,为什么发觉并没有那么快?

piao2004 2017-06-20 07:53:49
两个过程,
上面的是传统的读取SQL数据库的操作。(数值已事先保存在数据库)
下面是从Redis读取一个键值(值已事先写入Redis)


循环1万次,各执行3次,
发现读取数据库需要2265毫秒;而读取Redis也需要1178毫秒。
速度仅提升1.9倍,效率仅提升47.97%,并没见得有多快啊!

(注:SqlServer和Redis Server均在本地,操作系统Win10,.net4.5,MsSql2016)

后来把值放在HttpRuntime.Cache中来读取,那才叫快啊!1万次读取才2.4毫秒


问题:为什么Redis的速度提升并不明显?有什么可以优化的地方?
...全文
671 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingZChina 2019-09-02
  • 打赏
  • 举报
回复
像查询火车票那样每天上亿访问量,就能看出快慢了
闭包客 2017-06-22
  • 打赏
  • 举报
回复
引用 7 楼 xiaogui340 的回复:
你这个测试的性能瓶颈不在 Server端 数据处理的能力,而是在客户端发送数据的能力。 你可以尝试以下的测试方案再试试: 1.单机器,100个线程并发,每个线程循环10万次调用 DB或是缓存,你会发现redis快多了 2.把1的程序复制到10台机器,同时运行,你又会发现redis更快了。
你做过这样的测试?
正怒月神 2017-06-22
  • 打赏
  • 举报
回复
读取数据库时,频繁开关连接才是开销最大的。 查询数据反而是其次了。
xiaogui340 2017-06-22
  • 打赏
  • 举报
回复
你这个测试的性能瓶颈不在 Server端 数据处理的能力,而是在客户端发送数据的能力。 你可以尝试以下的测试方案再试试: 1.单机器,100个线程并发,每个线程循环10万次调用 DB或是缓存,你会发现redis快多了 2.把1的程序复制到10台机器,同时运行,你又会发现redis更快了。
wanghui0380 2017-06-22
  • 打赏
  • 举报
回复
额,完全的误用。他是为了缓存。 为啥要缓存?你想明白没有?? 没有想明白,为啥要缓存?就只当个数据库用么?
zhujinqiang 2017-06-22
  • 打赏
  • 举报
回复
引用 7 楼 xiaogui340 的回复:
你这个测试的性能瓶颈不在 Server端 数据处理的能力,而是在客户端发送数据的能力。 你可以尝试以下的测试方案再试试: 1.单机器,100个线程并发,每个线程循环10万次调用 DB或是缓存,你会发现redis快多了 2.把1的程序复制到10台机器,同时运行,你又会发现redis更快了。
闭包客 2017-06-20
  • 打赏
  • 举报
回复
此外,还和你的连接池策略有关,在 10k 次的循环里面,新开了多少个连接? sql 新开连接是需要身份验证的,这个是开销比较大的。
by_封爱 版主 2017-06-20
  • 打赏
  • 举报
回复
1W次能证明什么...1W次我觉得记事本都完爆数据库,... 不如你输入1000000000次试试....
闭包客 2017-06-20
  • 打赏
  • 举报
回复
从逻辑上就可以知道,sql 命中索引的话,不会比 redis 慢多少。你的测试结果我已经比我想象中的慢太多了。 而且你这里是重复获取同一个 id,一般 sql 会把热点数据驻留内存,这样的话,redis 的优势就缩小了。
秋的红果实 2017-06-20
  • 打赏
  • 举报
回复
谁知道你sql语句是怎么写的,写法不同,执行效率当然也不同
wang_peng_yl 2017-06-20
  • 打赏
  • 举报
回复
并发不应该这样测试吧, 理论上讲,10000次,不就得开10000个线程,每个线程执行3次么 你这样的1万次应该是在单线程下的,应该不准
xuzuning 2017-06-20
  • 打赏
  • 举报
回复
测试应包括连接、查询,而不是仅从结果集中读一个数据 SqlServer 和 Redis 均是独立软件,属第三方服务,连接开销不可忽略 HttpRuntime.Cache 是内置服务,不存在连接问题 需要综合测评,当数据没有存在于缓存中时,你依然需要到数据库中去查找 可知命中策略在缓存系统中是至关重要的

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧