国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Python編寫memcached啟動腳本代碼實例

瀏覽:2日期:2022-07-14 09:38:58

memcached是一套分布式的高速緩存系統(tǒng),由LiveJournal的Brad Fitzpatrick開發(fā),但被許多網(wǎng)站使用。這是一套開放源代碼軟件,以BSD license授權(quán)發(fā)布。

memcached缺乏認(rèn)證以及安全管制,這代表應(yīng)該將memcached服務(wù)器放置在防火墻后。

memcached的API使用三十二比特的循環(huán)冗余校驗(CRC-32)計算鍵值后,將數(shù)據(jù)分散在不同的機器上。當(dāng)表格滿了以后,接下來新增的數(shù)據(jù)會以LRU機制替換掉。由于memcached通常只是當(dāng)作緩存系統(tǒng)使用,所以使用memcached的應(yīng)用程序在寫回較慢的系統(tǒng)時(像是后端的數(shù)據(jù)庫)需要額外的代碼更新memcached內(nèi)的數(shù)據(jù)。

memcached作為緩存文件服務(wù),默認(rèn)是操作系統(tǒng)里面是可以直接yum -y install memcached進(jìn)行安裝的。

/etc/init.d/memcached 是屬于系統(tǒng)shell編寫的管理腳本,下面這個腳本是python腳本編寫出來的memcached管理腳本,和shell編寫的腳本實現(xiàn)的效果一樣。

代碼如下

#!/usr/bin/pythonimport sysimport osfrom subprocess import Popen,PIPEclass Process(object): ’’’memached rc script’’’ args = {’USER’:’memcached’, ’PORT’:11211, ’MAXCONN’:1024, ’CACHESIZE’:64, ’OPTION’:’’} def __init__(self,name,program,workdir): self.name = name self.program = program self.workdir = workdir def _init(self): ’’’/var/tmp/memcached’’’ if not os.path.exists(self.workdir): os.mkdir(self.workdir) os.chdir(self.workdir) def _pidFile(self): ’’’/var/tmp/memcached/memcached.pid’’’ return os.path.join(self.workdir, '%s.pid' % self.name) def _writePid(self): if self.pid: with open(self._pidFile(),’w’) as fd:fd.write(str(self.pid)) def _readConf(self,f): with open(f) as fd: lines = fd.readlines() return dict([ i.strip().replace(’'’,’’).split(’=’) for i in lines]) def _parseArgs(self): conf = self._readConf(’/etc/sysconfig/memcached’) if ’USER’ in conf: self.args[’USER’] = conf[’USER’] if ’PORT’ in conf: self.args[’PORT’] = conf[’PORT’] if ’MAXCONN’ in conf: self.args[’MAXCONN’] = conf[’MAXCONN’] if ’CACHESIZE’ in conf: self.args[’CACHESIZE’] = conf[’CACHESIZE’] options = [’-u’,self.args[’USER’], ’-p’,self.args[’PORT’], ’-m’,self.args[’CACHESIZE’], ’-c’,self.args[’MAXCONN’]] os.system('chown %s %s' % (self.args[’USER’],self.workdir)) return options def start(self): pid = self._getPid() if pid: print '%s is running...' % self.name sys.exit() self._init() cmd = [self.program] + self._parseArgs() + [’-d’,’-P’,self._pidFile()] p = Popen(cmd,stdout=PIPE) #self.pid = p.pid #self._writePid() print '%s start Sucessful tt [OK]' % self.name def _getPid(self): p = Popen([’pidof’,self.name],stdout=PIPE) pid = p.stdout.read().strip() return pid def stop(self): pid = self._getPid() if pid: os.kill(int(pid),15) if os.path.exists(self._pidFile()):os.remove(self._pidFile()) print '%s is stopped ttt [OK]' % self.name def restart(self): self.stop() self.start() def status(self): pid = self._getPid() if pid: print '%s is already running' % self.name else: print '%s is not running' % self.name def help(self): print 'Usage:%s {start|stop|status|restart|} ' % __file__ def main(): name = ’memcached’ prog = ’/usr/bin/memcached’ args = ’-u nobody -p 11211 -c 1024 -m 64’ wd = ’/var/tmp/memcached’ pm = Process(name = name, program = prog, workdir = wd) try: cmd = sys.argv[1] except IndexError,e: print 'Option error' sys.exit() if cmd == ’start’: pm.start() elif cmd == ’stop’: pm.stop() elif cmd == ’restart’: pm.restart() elif cmd == ’status’: pm.status() else: pm.help()if __name__ == ’__main__’: main()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 另类专区另类专区亚洲 | 免看一级一片一在线看 | 在线观看久草视频 | 欧美一级毛片免费看高清 | 18在线观看国内精品视频 | 亚洲综合成人网在线观看 | 午夜伦4480yy妇女久久久 | 欧美一级毛片怡红院 | 精品国产亚洲一区二区在线3d | 成年人免费在线视频观看 | 在线视频 中文字幕 | 久久九九免费视频 | 在线观看免费为成年视频 | 九色视频在线观看免费 | a毛片在线看片免费 | 亚洲精品一区二区三区四区 | 精品一区二区三区视频在线观看 | 久久91亚洲精品久久91综合 | 久久精品视频免费观看 | 欧美日韩精品一区二区在线线 | 老司机成人免费精品视频 | 天天干亚洲| 国产欧美日韩精品高清二区综合区 | 99国内视频 | 亚洲高清一区二区三区 | 免费观看性欧美大片无片 | 国产草草影院ccyycom软件 | 国产激情久久久久久影院 | 国产高清一区二区三区视频 | 青草青99久久99九九99九九九 | 娇小性色xxxxx中文 | 996re免费热在线视频手机 | 亚洲 自拍 欧美 综合 | 亚洲加勒比久久88色综合一区 | 中文字幕一区视频一线 | 国内9l视频自拍 | 欧美视频一区在线观看 | 亚洲欧美日韩在线不卡中文 | 国产在线一区二区三区四区 | 免费国产高清精品一区在线 | 天天鲁天天爱天天鲁天天 |