Linux下MemCached安装及c#客户端调用

操作系统 强烈建议 2024-02-07 14:55 180 0

  一、Linux下MemCached安装和启动

  如果是centos可以yum安装

  # yum install libevent-devel

  如果不支持yum的系统,可以这样装libevent

  # cd /usr/local/src

  # wget

  # tar vxf libevent-1.4.12-stable.tar.gz

  # cd libevent-1.4.12

  # –prefix=/usr/local/libevent

  # make && make install

  继续安装memcached

  # cd /usr/local/src

  # wget

  # tar vxf memcached-1.4.4.tar.gz

  # cd memcached-1.4.4

  # –prefix=/usr/local/memcached

  # make && make install

  安装完后启动memcached并分配1024m内存

  /usr/local/memcached/bin/memcached -d -m 1024 –l 10.32.33.120 -p 11211 -u root

  -d选项是启动一个守护进程,

  -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

  -u是运行Memcache的用户,我这里是root,

  -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址10.32.33.120,

  -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

  -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

  -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

  将memcached加入启动项

  # vi /etc/rc.d/rc.local

  在最后加入

  /usr/local/memcached/bin/memcached -d -m 1024 –l 10.32.33.120 -p 11211 -u root

  按Esc键,再输入

  :wq

  保存退出

  查看是否启动memcached

  获取运行状态:echo stats | nc 10.32.33.120 11211(可以查看出pid) 或使用ps -ef|grep memcached

  如果要结束Memcache进程,执行:

  # kill `cat /tmp/memcached.pid`

  也可以

  #kill –9 进程号

  二、连接到 memcached

  连接到 memcached:

  telnet ip 端口,如telnet 10.32.33.120 11211

  stats查看状态,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的总数

  三、c#调用

  MemCache管理操作类,MemCachedManager.cs文件:

  cache操作接口类ICacheStrategy.cs(为了方便扩展其他的cache):

  MemCached.cs类

  实体类MemCachedConfigInfo.cs

  实现代码完了,下面就是把配置文件memcached.config反序列化成实体方法

  用MemCachedConfig.cs实现配置文件的载入和读取LoadConfig是载入配置,SetConfig是保存配置,GetConfig是获取配置,其中用了了序列化和反序列化

  MemCachedConfig.cs文件如下:

  SerializationHelper.cs代码如下:

  最后配置文件类似这样的:

  使用时调用方法:

  MemCachedConfig.LoadConfig(Server.MapPath("/config/memcached.config"));

  这个方法通过LoadConfig把配置加载进来,反序列化成MemCachedConfigInfo实体并放入私有静态变量config 中,并通过GetConfig() 获取config,然后MemCachedManager类通过private static MemCachedConfigInfo memCachedConfigInfo=MemCachedConfig.GetConfig();方法获取到配置了。

  文章来源:



时间:(2024-02-07 14:55:55)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!