1
oott123 2017-12-30 11:10:26 +08:00 via Android 1
就算不存在网络传输耗时,也可能会有协议栈耗时或者编码解码序列化的耗时等,毕竟 redis 是跨进程通信,相比起进程内的内存缓存读写自然是有更多开销。
|
2
dangyuluo 2017-12-30 11:12:10 +08:00
你是怎么连接 redis 的?用的 socket 还是 localhost ?
|
3
hcymk2 2017-12-30 11:28:59 +08:00
你应该和 redis 自带的 benchmark 来比较
|
4
Citrus 2017-12-30 11:33:24 +08:00 via iPhone
差距不大才不对吧。。。你这平均一下一次 redis 操作连 1ms 都不到,还要怎样?
|
5
xhystc 2017-12-30 12:03:03 +08:00 via Android
用 pipe 了么
|
8
chinvo 2017-12-30 12:54:31 +08:00
歪个楼,做 Benchmark 用 BenchmarkDotNet 贼爽
|
9
wwqgtxx 2017-12-30 14:05:51 +08:00
编码解码,协议封装,进程上下文切换,内核态和用户态数据拷贝 这些不都是要时间的嘛
|
10
mooncakejs 2017-12-30 16:04:32 +08:00
你用的是 linux sock ?
windows 不太了解,如果没有特殊操作,tcp 协议栈过一遍就已经很慢了。 |
11
ipwx 2017-12-30 16:13:22 +08:00
。。。建议复习操作系统。进程隔离是操作系统保障安全性的基本方式,而这种隔离带来了跨进程通讯的开销。
|
12
iyaozhen 2017-12-30 17:10:28 +08:00
本来就是这样呀
各有各的场景,内置 cache 性能是好,但是分布式系统间数据更新怎么办?一般场景一次请求也就操作几次 redis 和用户内置 cache 即使就差个几 ms 也是可以接受的 |