`
fly_hyp
  • 浏览: 307703 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

这是我自己使用memcached工具

阅读更多

是python 写的,只适用到最基本的类库,应该各个版本都能够运行。是一个命令提示符界面。启动以后会有简单提示。

 

#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
import telnetlib
import time
import string
import sys
import os
import os.path
ENCODING = sys.getfilesystemencoding()

host = {}
host['ip']=''
host['port']=11211


tn = None

def sendCmd(tn,cmd):
  tn.write( cmd + "\n")
  time.sleep(0.5)
  print "\t --" + cmd
  
  #print tn.read_some()  
  #print "\t--read_very_eager"
  #print tn.read_very_eager() 
  print tn.read_very_lazy() 
  print tn.read_very_eager() 

def test():  
  global tn
  tn = telnetlib.Telnet(host['ip'],host['port'])
  #tn.set_debuglevel(2)
  #print tn.read_some( ) 
  
  #sendCmd(tn,"stats")
  #sendCmd(tn,"stats sizes")
  #sendCmd(tn,"stats items")
  #sendCmd(tn,"stats slabs")
  #sendCmd(tn,"stats malloc")
  #sendCmd(tn,"stats maps")
  #sendCmd(tn,"stats cachedump 1 10000")
  
  #sendCmd(tn,"stats detail dump")
  #stats  [on|off|dump]  
  

  tn.close()
  

class Shell:
  
  shortCmdMap = {}
  
  def statsCmd(self,uCmd):
    global tn
    if tn == None:
      outPut(u" memcached is not connect")
      return 
    cmd = uCmd.encode(ENCODING)
    sendCmd(tn,cmd)
    
  
  def open(self,uCmd):
    global tn
    parts = string.split(uCmd," ")
    if len(parts) == 3 :
      host['ip'] = parts[1]
      host['port'] = parts[2]
      tn = telnetlib.Telnet(parts[1],int(parts[2]))
    else:
      outPut(u" open connent param error")                          
  def handleCmd(self,uCmd):
    global tn,host
    if tn == None:
      outPut(u" memcached is not connect")
    else:
      outPut(u"connect to:" + host['ip'] + u"," + host['port'])
    if uCmd == u"env":
      print os.environ
      return
    if uCmd == u"list" or uCmd == u"l":
      files = os.listdir("")
      self.shortCmdMap = {}
      index = 0
      for f in files:
        
        uFile = f.decode(ENCODING)
        #outPut(uFile)
        uFile = uFile.lower()
        if uFile.endswith(".bat"):
          index += 1
          uShortCmd = u"#" + str(index)
          self.shortCmdMap[uShortCmd] = uFile
          outPut(uShortCmd +" " +uFile)
      return
    if uCmd == u"help" or uCmd == u"h":
      printHelpInfo()
      return
    if uCmd.startswith(u"#"):
      uRealCmd = self.shortCmdMap[uCmd]
      if uRealCmd != None:
        os.system(uRealCmd)  
      return
    print uCmd
    if uCmd.startswith(u"open "):
      self.open(uCmd)
      return 
    if uCmd.startswith(u"stats"):
      self.statsCmd(uCmd)
      return 
      

  def processCmd(self):
    while True:
      cmd = raw_input(u'\n$:'.encode(ENCODING))
      uCmd = cmd.decode(ENCODING)
      uCmd = string.strip(uCmd)
      if uCmd == u"exit":
        outPut("bye-bye")
        break 
      else:      
        self.handleCmd(uCmd)
      outPut(uCmd)  
  
def printHelpInfo():
  outPut(u"help(h) print help ")  
  outPut(u"list(l) list all command")
  outPut(u"env display all env info")
  outPut(u"open host port")
  outPut(u"stats")  
  outPut(u"stats reset")
  outPut(u"stats sizes")
  outPut(u"stats items")
  outPut(u"stats slabs")
  outPut(u"stats malloc")
  outPut(u"stats maps")
  outPut(u"stats maps")
  outPut(u"stats cachedump slab_id limit_num")
  outPut(u"exit")  
  
def outPut(ustr):
  print ustr.encode(ENCODING)
  
if __name__ == '__main__':  
  outPut(u"memcached stat shell:")
  s = Shell()
  printHelpInfo()
  s.processCmd()
  
分享到:
评论

相关推荐

    memcached工具类源码

    Memcached是一种高性能、分布式内存对象缓存系统,用于在动态系统中减少数据库负载...以上是对"memcached工具类源码"相关知识点的详细阐述,通过理解这些内容,开发者可以更好地理解和使用这个工具类,提升项目的性能。

    memcached客户端工具

    TreeNMS是一款redis,Memcache可视化客户端工具,采用JAVA开发,实现基于WEB方式对Redis, Memcached数据库进行管理、维护。 功能包括:NoSQL数据库的展示,库表的展示,key,value的展示,新增,修改,删除等数据的...

    Memcached使用--使用

    3. **启动与停止**:使用命令行工具如`memcached`或`service memcached start/stop/restart`来启动、停止或重启服务。 **三、Memcached客户端** 1. **语言支持**:Memcached有多种编程语言的客户端库,如PHP、...

    memcached工具包

    memcached工具包,用于java代码开发中使用mamcache

    Memcached 客户端 服务端 管理工具

    - **`mcstat`**:这是一个轻量级的命令行工具,可以实时查看Memcached的统计信息,如命中率、内存使用情况等。 - **`memcachedb`**:提供图形化的Web界面,用于查看和操作Memcached中的键值对,便于调试和管理。 - *...

    memcached监视工具,有图有像,动态查看各种数据

    由于没有具体的文件名,我们可以假设这个压缩包包含了一系列用于在Windows 64位环境下安装和使用的memcached监视工具。这些文件可能包括安装程序、配置文件、日志文件、帮助文档等。 **知识点详解:** 1. **...

    memcached开发工具包

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...

    最基本的缓存工具memcached

    【标题】:“最基本的缓存工具memcached” 在IT行业中,缓存是提升系统性能的关键技术之一,而Memcached就是一种广泛使用的分布式内存对象缓存系统。Memcached的主要目的是减轻数据库的负载,通过将数据存储在内存...

    java使用memcached demo

    可以使用第三方工具(如`mcstat`)监控Memcached的性能,确保其正常运行。随着数据量的增加,可以考虑集群部署,通过一致性哈希算法实现Memcached的水平扩展。 通过以上步骤,你可以在Java项目中成功集成并使用...

    memcached测试的工具类

    这里我们将深入探讨“memcached测试的工具类”,以及如何利用这样的工具类来优化Memcached的使用。 Memcached测试工具类通常包含了各种方法,用于模拟不同的操作场景,例如设置(key-value)对、获取存储的数据、删除...

    win7 32位 memcached工具

    【标题】"win7 32位 memcached工具"指的是在Windows 7 32位操作系统环境下使用的Memcached缓存服务工具。Memcached是一款高性能、分布式内存对象缓存系统,常用于减轻数据库负载,提高网站或应用的响应速度。它通过...

    Memcached java的使用实例

    本文将深入讲解如何在Java环境下集成和使用Memcached。 首先,我们需要在Java项目中引入Memcached的客户端库。常见的Java Memcached客户端有spymemcached和xmemcached,这里以spymemcached为例。可以通过Maven在`...

    memcached安装及java应用使用memcached

    2. **工具**:可能指的是memcached本身作为一个开发工具,或者在Java开发环境中使用的相关工具或插件。 **文件名称列表分析:** 由于只给出了"memcached"这个文件名,我们无法确定具体包含哪些内容。通常,这可能...

    memcached性能分析工具

    分析每个slabs的内存使用情况,浪费了多少内存,可用内存等信息。 使用说明: memcached.py 172.16.1.1:11211 # shows slabs memcached.py 172.16.1.1:11211 start # shows stats memcached.py 172.16.1.1:11211 ...

    Memcached 原理和使用详解

    Memcached是一款高效、轻量级的分布式内存缓存系统,...总之,Memcached是一个强大而高效的缓存工具,广泛应用于各种高流量网站和应用中,以提高性能和可扩展性。理解其原理和正确使用方法,对于优化Web应用至关重要。

    memcached windows 版本 带控制台工具

    使用过程中,需要注意内存管理,因为memcached会尽可能使用分配给它的所有内存来存储数据。同时,合理的数据过期策略也很关键,避免占用过多内存导致服务器资源紧张。 总的来说,memcached在Windows环境下的应用为...

    memcached 64位 window

    解压后,用户通常需要按照安装指南进行编译和安装,设置配置文件,并通过命令行工具启动和管理Memcached服务。 **集成和使用** 在Windows上部署Memcached,需要关注以下关键点: 1. **安装**:解压文件并根据官方...

Global site tag (gtag.js) - Google Analytics