c#中 redis 和内置的 Cache 性能对比为什么差距这么大? - V2EX
wvtjplh

c#中 redis 和内置的 Cache 性能对比为什么差距这么大?

  •  
  •   wvtjplh Dec 30, 2017 3970 views
    This topic created in 3055 days ago, the information mentioned may be changed or developed.
    redis 10 万次耗时 00:00:03.9114159
    Cache 10 万次耗时 00:00:00.1691259

    redis 服务也是在本机运行不存在网络传输

    代码
    for (int i = 0; i < 100000; i++)
    {
    service.Set("RedisStringService_key" + i, "RedisStringService_value2");//Redis
    }
    watch.Stop();
    Console.WriteLine("redis 10 万次耗时 "+watch.Elapsed);

    watch.Reset();
    watch.Start();
    for (int i = 0; i < 100000; i++)
    {
    HttpRuntime.Cache.Insert("RedisStringService_key" + i, "RedisStringService_value2", null, DateTime.Now.AddMinutes(5), TimeSpan.Zero);
    }
    watch.Stop();
    Console.WriteLine("Cache 10 万次耗时 " + watch.Elapsed);
    12 replies    2017-12-30 17:10:28 +08:00
    oott123
        1
    oott123  
       Dec 30, 2017 via Android   1
    就算不存在网络传输耗时,也可能会有协议栈耗时或者编码解码序列化的耗时等,毕竟 redis 是跨进程通信,相比起进程内的内存缓存读写自然是有更多开销。
    dangyuluo
        2
    dangyuluo  
       Dec 30, 2017
    你是怎么连接 redis 的?用的 socket 还是 localhost ?
    hcymk2
        3
    hcymk2  
       Dec 30, 2017
    你应该和 redis 自带的 benchmark 来比较
    Citrus
        4
    Citrus  
       Dec 30, 2017 via iPhone
    差距不大才不对吧。。。你这平均一下一次 redis 操作连 1ms 都不到,还要怎样?
    xhystc
        5
    xhystc  
       Dec 30, 2017 via Android
    用 pipe 了么
    wvtjplh
        6
    wvtjplh  
    OP
       Dec 30, 2017
    @dangyuluo localhost
    wvtjplh
        7
    wvtjplh  
    OP
       Dec 30, 2017
    @xhystc 没有
    chinvo
        8
    chinvo  
       Dec 30, 2017
    歪个楼,做 Benchmark 用 BenchmarkDotNet 贼爽
    wwqgtxx
        9
    wwqgtxx  
       Dec 30, 2017
    编码解码,协议封装,进程上下文切换,内核态和用户态数据拷贝 这些不都是要时间的嘛
    mooncakejs
        10
    mooncakejs  
       Dec 30, 2017
    你用的是 linux sock ?
    windows 不太了解,如果没有特殊操作,tcp 协议栈过一遍就已经很慢了。
    ipwx
        11
    ipwx  
       Dec 30, 2017
    。。。建议复习操作系统。进程隔离是操作系统保障安全性的基本方式,而这种隔离带来了跨进程通讯的开销。
    iyaozhen
        12
    iyaozhen  
       Dec 30, 2017
    本来就是这样呀

    各有各的场景,内置 cache 性能是好,但是分布式系统间数据更新怎么办?一般场景一次请求也就操作几次 redis 和用户内置 cache 即使就差个几 ms 也是可以接受的
    About     Help     Advertise     Blog     API     FAQ     Solana     3285 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 72ms UTC 14:11 PVG 22:11 LAX 07:11 JFK 10:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86