注意:为了安装顺利,所以需要以管理员身份启动cmd.exe,不然多会报错:“failed to install service or service already installed”,进入D:\memcached目录下,运行命令
memcached.exe -d install (之后屏幕无任何提示)
memcached.exe -d start
(之后屏幕无任何提示,但是在“任务管理器”中勾选“显示所有用户进程”,此时可以看到memcached.exe进程正在运行)
默认端口11211,外部访问需要开放该端口,否则无法成功连接。
2.修改端口如果不是作为服务启动memcached的话,memcached -p 端口号就可以
https://blog.csdn.net/youcijibi/article/details/82422106
原文:https://blog.csdn.net/youcijibi/article/details/82422106
https://jingyan.baidu.com/article/ed2a5d1f257fe509f6be178a.html
常用命令:1.telnet到memcache服务器,如:telnet 192.168.1.120 11211(11211是memcache的默认端口)
2.stats 查看基本信息
3.stats items 查看items
4.get key(key 为 item后面的字符串即键)
5.-c 最大同时连接数,默认是1024
6.-f 块大小增长因子,默认是1.25
7.-n 最小分配空间,key+value+flags默认是48
8.-h 显示帮助
1、设定缓存放在那里:CACHE_BACKEND也可以使用memcached:CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
多个memcached:CACHE_BACKEND = 'memcached://172.19.26.240:11211172.19.26.242:11211/'
/// pip install python-memcached
2、python *** 作memcached:
import memcache
mc = memcache.Client(['139.129.5.191:12000'], debug=True)
mc.set("name", "python")
ret = mc.get('name')
print (ret)
python
3、设置权重
import memcache
mc = memcache.Client([('1.1.1.1:12000', 1), ('1.1.1.2:12000', 2),('1.1.1.3:12000',3)])
mc.set('k1','value1')
ret = mc.get('k1')
print (ret)
4、已经存在的键重复添加会出错:
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.add('k1', 'v1')
mc.add('k1', 'v2') # 报错,对已经存在的key重复添加,失败!!!
例如:
ret1 = mc.add('name','tom')
print(refalse)
ret2 = mc.add('name','jack')
print(retrue)
结果:
False #当已经存在key 那么返回false
True #如果不存在key 那么返回treue
5、替换 *** 作:replace,如果键不存在,出错
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('name','tom')
re = mc.get('name')
print(re)
rereplace = mc.replace('name','jack')
re = mc.get('name')
print(rereplace,re)
结果:
tom #第一次赋值
True jack #如果存在key那么修改成功为yaoyao 返回True
rereplace = mc.replace('name1','hahaha')
re = mc.get('name1')
print(rereplace,re)
结果:
False None #如果不存在key,修改失败,返回空值
6、set:键值存在,就修改,不存在,则创建
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('name','tom')
re = mc.get('name')
print('set用法',re) #设置一个键值对
dic = {'name':'to,','age':'19','job':'IT'}
mc.set_multi(dic) #设置多个键值对
mcname = mc.get('name')
mcage = mc.get('age')
mcjob = mc.get('job')
print('set_multi用法:',mcname,mcage,mcjob)
7、delete:
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('name','tom')
re = mc.get('name')
print('存在',re)
mc.delete('name')
re = mc.get('name')
print('删除',re) #删除一个键值对
8、get
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('name','tom')
re = mc.get('name')
print('get',re) #获取一个键值对
dic = {'name':'to,','age':'19','job':'IT'}
mc.set_multi(dic)
regetmu=mc.get_multi(['name','age','job'])
print('get_multi',re) #获取多个键值对的值
9、append,prepend
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('num','第一|')
re = mc.get('num')
print(re)
mc.append('num','追加第二个') #在第一后面追加
re = mc.get('num')
print(re)
mc.prepend('num','我是零个') #在第一前面追加
re = mc.get('num')
print(re)
结果:
第一|
第一|追加第二个
我是零个第一|追加第二个
10、decr,incr自增自减
import memcache
mc = memcache.Client(['0.0.0.0:12000'])
mc.set('num','1')
re = mc.get('num')
print('我是没加过的值',re)
mc.incr('num','9')
re = mc.get('num')
print('我是加上新增后的值',re)
mc.decr('num','5')
re = mc.get('num')
print('我是减去的值',re)
我是没加过的值 1
我是加上新增后的值 10
是减去的值 5
11、锁机制:gets cas
import memcache
mc = memcache.Client(['0.0.0.0:12000'],cache_cas=True)
mc.set('count','10')
reget = mc.get('count')
print('件数',reget)
regets = mc.gets('count')
print(regets)
下面的设置将会执行失败,剖出异常,从而避免非正常数据的产生
recas = mc.cas('count','11')
print(recas)
regets = mc.gets('count')
print('修改',regets)
配置修改:如果不懂代码的话,不要伸手,后果自负。负载状态:memcached运行中的相关状态。其中最重要的是hit这个参数,也就是命中率。当然是越高越好了。
性能调整:前面IP和端口不要改。缓存大小根据实际情况调整。根据什么来调整呢?回到负载状态栏,有一个“当前已使用内存”,看这个数字来调整。比如默认分配给memcached一共64M内存,但是已使用内存62M就说明memcached可用内存快要满了,这时候就手动改大一点,比如128M。具体数字根据每天流量情况来定。
Memcached的目的就是把所有文章内容都扔进内存,这样用户来访时直接读取内存中的内容,跳过了数据库,所以使用memcached后网站打开感觉特别快。比如网站每天发几十篇文章,可能这个数字就调整大一点,防止不够用了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)