zoukankan      html  css  js  c++  java
  • .net/c# memcached 安装和基本使用

    下载地址: memcached Windows 64-bit

    1、解压到指定目录,如:D:Memcachedmemcached-win64-1.4.4-14。 
    2、用cmd打开命令窗口,转到解压的目录,输入 “memcached.exe -d install”。 
    3、打开控制面板,打开服务,可以看到memcached已经在上面可,如果没有启动,则手动启动一下。

    4、    使用telnet命令 验证缓存服务器是否可用。

    telnet 10.1.19.61 11211

    开始什么都不显示,回车后输入命令  stats  查看统计信息,如下图,说明服务器运作正常。

    三、参数介绍 

    1、 以上的安装和启动都是在默认环境下进行的,在安装时可设置如下参数: 
    -p 监听的端口 
    -l 连接的IP地址, 默认是本机 
    -d start 启动memcached服务 
    -d restart 重起memcached服务 
    -d stop|shutdown 关闭正在运行的memcached服务 
    -d install 安装memcached服务 
    -d uninstall 卸载memcached服务 
    -u 以的身份运行 (仅在以root运行的时候有效) 
    -m 最大内存使用,单位MB。默认64MB 
    -M 内存耗尽时返回错误,而不是删除项 
    -c 最大同时连接数,默认是1024 
    -f 块大小增长因子,默认是1.25 
    -n 最小分配空间,key+value+flags默认是48 
    -h 显示帮助 

     四、代码例子

     static void Main(string[] args)
            {
                //服务器端列表
                string[] serverlist = { "127.0.0.1:11211" };
                //初始化池
                SockIOPool sock = SockIOPool.GetInstance();
                sock.SetServers(serverlist);//添加服务器列表
                sock.InitConnections = 3;//设置连接池初始数目
                sock.MinConnections = 3;//设置最小连接数目
                sock.MaxConnections = 5;//设置最大连接数目
                sock.SocketConnectTimeout = 1000;//设置连接的套接字超时。
                sock.SocketTimeout = 3000;//设置套接字超时读取
                sock.MaintenanceSleep = 30;//设置维护线程运行的睡眠时间。如果设置为0,那么维护线程将不会启动;
                //获取或设置池的故障标志。
                //如果这个标志被设置为true则socket连接失败,
                //将试图从另一台服务器返回一个套接字如果存在的话。
                //如果设置为false,则得到一个套接字如果存在的话。否则返回NULL,如果它无法连接到请求的服务器。
                sock.Failover = true;
                //如果为false,对所有创建的套接字关闭Nagle的算法。
                sock.Nagle = false;
                sock.Initialize();
    
                //获取客户端实例
                MemcachedClient memcached = new MemcachedClient();
                //是否启用压缩数据
                memcached.EnableCompression = false;
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~Memcached Set");
                //存储缓存数据。
                //如果数据在服务器上不存在此键,或者如果键被删除指定的值将不被保存。
                //到期时间到达时服务器会自动删除该键值.
                //如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式。
                //在当前版本中,所有对象会使用。NET序列化。
                //参数说明:
                //key:缓存的键.value:缓存对象. expiry:过期时间.hashCode:如果不为null,则诠释哈希码使用
                //asString :作为字符串存储该对象
                memcached.Set("test1", "test1");
                Console.WriteLine(memcached.Get("test1"));
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~Memcached Add ,先Add再调用Set 相同键值Set会覆盖掉Add的值");
                memcached.Add("test2", "value2");
                Console.WriteLine(memcached.Get("test2"));
                memcached.Set("test2", "value1 value2");
                Console.WriteLine(memcached.Get("test2"));
                Console.WriteLine("Memcached Replace ");
                //在服务器上更新数据,指定键和值。
                memcached.Replace("test2", "value3");
                Console.WriteLine(memcached.Get("test2"));
    
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~Memcached 键值是否存在");
                if (memcached.KeyExists("test2"))
                {
                    Console.WriteLine("键test2 存在");
                }
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~Memcached 删除数据");
                memcached.Add("test4", "value4");
                Console.WriteLine("test4==>" + memcached.Get("test4"));
                memcached.Delete("test4");
                if (!memcached.KeyExists("test4"))
                {
                    Console.WriteLine("test4 已将删除");
                }
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~Memcached 数据过期");
                memcached.Add("test5", "value5", DateTime.Now.AddMilliseconds(5000));
                Console.WriteLine(memcached.Get("test5"));
                System.Threading.Thread.Sleep(6000);
                Console.WriteLine("过期: " + memcached.Get("test5"));
                Console.Read();
                SockIOPool.GetInstance().Shutdown();  //关闭池, 关闭sockets
            }

    PS.参考文章

    http://www.jb51.net/article/30334.htm

    http://www.cnblogs.com/xiaogangqq123/archive/2011/03/11/1981114.html

  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/FH-cnblogs/p/4353929.html
Copyright © 2011-2022 走看看