首页 新闻 会员 周边 捐助

Enyim.Caching.dll memcache的客户端赋值不成功!!!

0
[已解决问题] 解决于 2013-09-27 17:17
<?xml version="1.0"?>
<configuration>


  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    <sectionGroup name="enyim.com">
      <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
    </sectionGroup>
 
  </configSections>

  <enyim.com>
    <memcached>
      <servers>
        <!-- put your own server(s) here-->
        <add address="localhost" port="11211" />
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
    
    </memcached>
  </enyim.com>



  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
      </layout>
    </appender>
    <root>
      <level value="Debug" />
      <appender-ref ref="ConsoleAppender" />
    </root>
  </log4net>
  

  <!--<startup> 
        
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>-->
</configuration>

 

 

 static void Main(string[] args)
        {
            testEnyimCaching();
            Console.ReadLine();
        }

        static void testEnyimCaching()
        {
            MemcachedClient client = new MemcachedClient("enyim.com/memcached");
            //存值  --不带过期时间的存储,Memcached将根据LRU来决定过期策略
            bool result = client.Store(Enyim.Caching.Memcached.StoreMode.Add, "name", "dinglang");
            //带过期时间的缓存  
            //bool success = client.Store(StoreMode.Add, person.UserName, person, DateTime.Now.AddMinutes(10)); 
            if (result)
            {
                Console.WriteLine("成功存入缓存");

                //取值  
                object name = client.Get("name");
                if (name != null)
                {
                    Console.WriteLine("取出的值为:" + name);
                }
                else
                {
                    Console.WriteLine("取值失败");
                }
            }
            else
            {
                Console.WriteLine("存入缓存失败");
            }
        }

为什么一直写入不成功??  上面红色的部分就是写入缓存的代码

koi的主页 koi | 初学一级 | 园豆:4
提问于:2013-09-25 16:14
< >
分享
最佳答案
0

app.config中用enyim.com的配置吗?

奖励园豆:5
dudu | 高人七级 |园豆:29568 | 2013-09-25 16:56

 App.config里的配置就是上面贴出出来的

koi | 园豆:4 (初学一级) | 2013-09-25 16:58

贴错了  重新上传了

koi | 园豆:4 (初学一级) | 2013-09-25 17:00

@koi: 你贴出来的是log4net的配置,不是enyim.com的

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:00

@dudu: 重新上传了

koi | 园豆:4 (初学一级) | 2013-09-25 17:01

@koi: telnet localhost 11211测试一下

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:01

@dudu: 可以的

koi | 园豆:4 (初学一级) | 2013-09-25 17:02

@koi: 

koi | 园豆:4 (初学一级) | 2013-09-25 17:02

@koi: 

试试直接 var client = new MemcachedClient();

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:05

@dudu: 写入失败

koi | 园豆:4 (初学一级) | 2013-09-25 17:07

@koi: 在配置中把<memcached>改为<memcached protocol="Binary">试试

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:10

@dudu: 还不不行

koi | 园豆:4 (初学一级) | 2013-09-25 17:12

@dudu: 把StoreMode.Add改为StoreMode.Set试试

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:13

@dudu: bool result = client.Store(Enyim.Caching.Memcached.StoreMode.Set, "nqqame", "dinglang");  执行到这里的时候会有小停顿几秒 然后返回false

koi | 园豆:4 (初学一级) | 2013-09-25 17:14

@koi: 建议再查一下,可能是某些低级问题引起的

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:17

@dudu: 已经是我全部代码了

还有个packages。config  

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EnyimMemcached" version="2.12" targetFramework="net45" />
</packages>

 

dll是我从nuget上下载来的

koi | 园豆:4 (初学一级) | 2013-09-25 17:21

@koi: 我们也是这么使用的,建议确认一下app.config中的配置是否起作用了

dudu | 园豆:29568 (高人七级) | 2013-09-25 17:41

@dudu: 换成 <memcached protocol="Text"> 就ok了,但是换成Binary就会有问题

逍遥岛王 | 园豆:202 (菜鸟二级) | 2014-03-12 17:23

@逍遥岛王: 我们一直用的是Binary

dudu | 园豆:29568 (高人七级) | 2014-03-12 17:27
其他回答(2)
1

我也遇到了同样的问题,store那个地方停顿了几秒

逍遥岛王 | 园豆:202 (菜鸟二级) | 2014-03-12 16:40

找到问题了,<memcached> 换成 <memcached protocol="Text"> 就ok了,但是换成Binary就会有问题,好像是验证模式的问题,正在研究中

支持(0) 反对(0) 逍遥岛王 | 园豆:202 (菜鸟二级) | 2014-03-12 17:17
0

我也遇到同样的问题? 为什么网上什么都没有加,自己配 加protocol="Text">的

痞子龙 | 园豆:154 (初学一级) | 2015-07-17 16:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册