• memcached在windows下的安装与命令使用方法


    下载地址:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

    点击红圈处:

    下载后解压,比如解压到D盘的memcached文件夹中
    打开 开始-->运行-->cmd 调出命令窗口,使用命令进入到memcached的解压目录
    安装memcached:输入D:memcachedmemcached.exe -d install ,安装完以后
    启动memcached的服务:输入 "D:memcachedmemcached.exe -d start" 启动服务


    这样memcached就成为windows服务了。
    如果需要关闭memcached的服务,则输入:
    D:memcachedmemcached.exe -d stop|shutdown 进行关闭。
    设置memcached,启动该服务后,memcached服务默认占用的端口是11211,占用的最大内存默认是64M。
    如果需要修改这两个参数,比如修改端口为10000,内存为512,则输入:
    D:memcachedmemcached.exe -p 10000 -m 512 -d start , -p 表示要修改的端口, -m表示占用的最大内存(单位为M)。
    常用命令:1.telnet到memcache服务器,如:telnet 192.168.1.120 11211(11211是memcache的默认端口)


    set: 用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
    add :仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED 。
    replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从memcached 服务器接受到一条NOT_STORED 响应。
    get:用于检索与之前添加的键值对相关的值。
    delete:用于删除memcached 中的任何现有值。您将使用一个键调用delete ,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND 消息。
    gets:功能类似于基本的get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
    前三个命令是用于操作存储在memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用清单5 所示的语法:

    command <key> <flags> <expiration time> <bytes>
    <value>

    表1. memcached 修改命令参数

    参数 用法
    key key 用于查找缓存值
    flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
    expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    bytes 在缓存中存储的字节点
    value 存储的值(始终位于第二行) 例子:
    set useID 0 0 5

    1234



    4、缓存管理命令

    最后两个memcached 命令用于监控和清理memcached 实例。它们是stats 和flush_all 命令。

    stats :转储所连接的memcached 实例的当前统计数据。
    flush_all:用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则flush_all 能提供很大的用处。
    查看memcached状态的基本命令,通过这个命令可以看到如下信息:

    STAT pid 22459 进程ID
    STAT uptime 1027046 服务器运行秒数
    STAT time 1273043062 服务器当前unix时间戳
    STAT version 1.4.4 服务器版本
    STAT pointer_size 64 操作系统字大小(这台服务器是64位的)
    STAT rusage_user 0.040000 进程累计用户时间
    STAT rusage_system 0.260000 进程累计系统时间
    STAT curr_connections 10 当前打开连接数
    STAT total_connections 82 曾打开的连接总数
    STAT connection_structures 13 服务器分配的连接结构数
    STAT cmd_get 54 执行get命令总数
    STAT cmd_set 34 执行set命令总数
    STAT cmd_flush 3 指向flush_all命令总数
    STAT get_hits 9 get命中次数
    STAT get_misses 45 get未命中次数
    STAT delete_misses 5 delete未命中次数
    STAT delete_hits 1 delete命中次数
    STAT incr_misses 0 incr未命中次数
    STAT incr_hits 0 incr命中次数
    STAT decr_misses 0 decr未命中次数
    STAT decr_hits 0 decr命中次数
    STAT cas_misses 0 cas未命中次数
    STAT cas_hits 0 cas命中次数
    STAT cas_badval 0 使用擦拭次数
    STAT auth_cmds 0
    STAT auth_errors 0
    STAT bytes_read 15785 读取字节总数
    STAT bytes_written 15222 写入字节总数
    STAT limit_maxbytes 1048576 分配的内存数(字节)
    STAT accepting_conns 1 目前接受的链接数
    STAT listen_disabled_num 0
    STAT threads 4 线程数
    STAT conn_yields 0
    STAT bytes 0 存储item字节数
    STAT curr_items 0 item个数
    STAT total_items 34 item总数
    STAT evictions 0 为获取空间删除item的总数

    下载.net 客户端:

    Manage NuGet Package 中搜索Memcached,选择安装Memcached Client,

    C# 客户端测试代码:

     private static void Main(string[] args)
            {
                string[] serverlist = {"192.168.1.120:11211"};
    
                //初始化池
                SockIOPool pool = SockIOPool.GetInstance();
                pool.SetServers(serverlist);
    
                pool.InitConnections = 3;
                pool.MinConnections = 3;
                pool.MaxConnections = 5;
    
                pool.SocketConnectTimeout = 1000;
                pool.SocketTimeout = 3000;
    
                pool.MaintenanceSleep = 30;
                pool.Failover = true;
    
                pool.Nagle = false;
                pool.Initialize();
    
                // 获得客户端实例
                MemcachedClient mc = new MemcachedClient();
                mc.EnableCompression = false;
    
                Console.WriteLine("------------测   试-----------");
                mc.Set("test", "my value"); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
    
                if (mc.KeyExists("test")) //测试缓存存在key为test的项目
                {
                    Console.WriteLine("test is Exists");
                    Console.WriteLine(mc.Get("test").ToString()); //在缓存中获取key为test的项目
                }
                else
                {
                    Console.WriteLine("test not Exists");
                }
    }
    

      

  • 相关阅读:
    markdown grammar
    vs the address of offline package
    步步为营-66-Socket通信
    步步为营-65-线程小例子
    线程使用中常见的错误-“System.InvalidOperationException”线程间操作无效: 从不是创建控件“ ”的线程访问它。
    步步为营-64-进程&线程
    步步为营-63-Asp.net-get与post
    步步为营-62-Excel的导入和导出
    步步为营-61-拼音组件
    步步为营-60-代码生成器
  • 原文地址:https://www.cnblogs.com/zhangzhi19861216/p/4108072.html
Copyright © 2020-2023  润新知