zoukankan      html  css  js  c++  java
  • 16 python --memcached

    简介

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值的hashmap。其守护进程(daemon)是用C语言写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

    安装memecache

    cd /usr/local/src
    wget http://memcached.org/latest
    tar -zxvf memcached-1.x.x.tar.gz
    cd memcached-1.x.x
    ./configure –prefix=/usr/local/memcached&& make && make test && make install



    报错处理:找不到libevent

    wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
    tar zxvf libevent-2.1.8-stable.tar.gz -C /usr/local/src/ cd /usr/local/src/
    ./configure --prefix=/usr/local/
    make && make install
    编译时指定libevent
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/
    或yum install –y libevent*

    启动memcache
    memcached -d -m 10 -u root -l 192.168.100.83 -p 12000 -c 256 -P /export/servers/memcache/logs/memcache.pid
    -p 指定端口号(默认11211)  
    -m 指定最大使用内存大小(默认64MB)  
    -t 线程数(默认4)  
    -l 连接的IP地址, 默认是本机  
    -d 以后台守护进程的方式启动
    -c 最大同时连接数,默认是1024
    -P 制定memecache的pid文件
    -h  打印帮助信息
    检查memcache是否启动

    Memcache常用命令
    存储命令: set/add/replace/append/prepend/cas
    获取命令: get/gets
    其他命令: delete/stats.

    import memcache
    mc=memcache.Client([("192.168.100.83:12000",1),("192.168.100.83:12001",2)],debug=True)
    mc.set("k1","v1")
    print (mc.get("k1"))
    import memcache
    mc=memcache.Client(["192.168.100.83:12001"],debug=True)
    mc.add("k1","v1")
    #add(key,value)
    print (mc.get("k1"))
    # print (dir(mc))
    
    #replace
    mc.replace("k1",'hello world')
    print mc.get("k1")
    
    #set(key,value)
    mc.set("k2","v2")
    print mc.get("k2")
    
    mc.set("k2","hello2")
    print mc.get("k2")
    
    # set和add的区别
    #set = add + replace
    # 如果这个key值存在,add就会报错,set不会报错,set会进行重新赋值并覆盖
    
    # set_multi(dict) 一次设置多个key:value
    # get_multi(list) 一次获取到多个key,每个key要以list的形式作为参数传入  返回类型为dict
    # get(key) 获得该key对应的value值
    # mc.set_multi({"k100":"v100","k101":"v101","k102":"v102"})
    # print mc.get_multi(["k100","k101"])
    
    mc.set_multi({"test1":"v100","test2":"v101","test3":"v102"})
    print mc.get_multi(['test1'])
    mc.delete('test1')
    mc.delete_multi(['test2','test3'])
    print mc.get_multi(["test1","test2","test3"])
    
    mc.set_multi({"test1":"v100","test2":"v101","test3":"v102"})
    mc.append("test1","ling") #在后面追加值
    print mc.get("test1")
    mc.prepend("test2","hello") #在前面加入值
    print mc.get("test2")
    
    # incr 和 decr
    # incr 默认自增1 第二个参数为自增的步长n
    # decr 默认自减1 第二个参数为自减的步长n
    
    mc.set("shop",1000) #自增初始值1000,默认自增1
    mc.incr("shop")
    print mc.get("shop")
    mc.incr("shop",100) #自增步长为100
    print mc.get("shop")
    
    mc.decr("shop") #自减
    print mc.get("shop")
    mc.decr("shop",500) #自减步长为500
    print mc.get("shop")
    View Code
  • 相关阅读:
    安装 TensorFlow
    Active Learning
    基于PU-Learning的恶意URL检测
    AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法
    Graph 卷积神经网络:概述、样例及最新进展
    深度学习在graph上的使用
    xgboost入门与实战(实战调参篇)
    xgboost入门与实战(原理篇)
    机器学习中的损失函数 (着重比较:hinge loss vs softmax loss)
    <html>
  • 原文地址:https://www.cnblogs.com/the-way-to-bifk/p/8001327.html
Copyright © 2011-2022 走看看