在新系统中需要用分布式缓存。查了一下开源的memcache和微软的Velocity可以解决这个需求。
我先试了一下memcache(因为网上的例子比较多),感觉在单台机器的时候和用HttpRuntime.Cache["str"]差不多,也产生了一些疑问。
疑问1,是否有工具可以查看当前memcache里存了多少key。memcache好像没有count和length属性。
2,怎么清空所有已存在的key。他只提供了Delete单个key的。我又没找到遍历MemcachedClient的方法,只能重启Memcache服务吗?
3,在多台机器的情况下,一台断线了,mc.set()还会写到那台机器上吗?我发现mc.set()到那台机器上居然不会报错!!
已经写到那台机器上的key 我get()他会报错System.NullReferenceException。
这样的话对后期维护排错有很大困难,怎么知道是哪台网络断了,或是哪太服务停了?
4,去哪里查出错日志。在class MemcachedClient 里有static ILog log,但是private,我的客户端.net程序捕捉不到他的错。
总之怎么方便的排错。Velocity是否比memcache更容易上手和排错啊?

解决方案 »

  1.   

    1,是否有工具可以查看当前memcache里存了多少key。memcache好像没有count和length属性。
    stats 查看memcached状态2,怎么清空所有已存在的key。他只提供了Delete单个key的。我又没找到遍历MemcachedClient的方法,只能重启Memcache服务吗?
    flush_all+ stats reset
      

  2.   

    1,是否有工具可以查看当前memcache里存了多少key。memcache好像没有count和length属性。
    stats 查看memcached状态2,怎么清空所有已存在的key。他只提供了Delete单个key的。我又没找到遍历MemcachedClient的方法,只能重启Memcache服务吗?
    flush_all+ stats reset