memcached使用

windows安装:

教程

linux安装:

一、安装libevent函数库

  1. 下载
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz 
  1. 解压
tar -zxvf libevent-2.0.21-stable.tar.gz 
  1. 编译安装
cd libevent-2.0.21-stable

./configure --prefix=/usr/local/libevent-2.0.21-stable 

make

make install
  1. 检查是否安装成功
ls -al /usr/local/libevent-2.0.21-stable/lib | grep libevent

二、安装memcached

  1. 下载
wget http://memcached.org/files/memcached-1.5.9.tar.gz
  1. 解压
tar -zxvf memcached-1.5.9.tar.gz 
  1. 编译、安装
cd memcached-1.5.9

./configure -with-libevent=/usr/local/libevent-2.0.21-stable/ --prefix=/usr/local/memcached-1.5.9

make
make install
  1. 查看是否安装成功
pstree | grep mem
  1. 安装成功后启动一下看安装是否成功
/usr/local/memcached-1.5.9/bin/memcached -d -m 1028 -p 11211 -u root

ps -ef|grep memcached
  1. 配置开机自启动
vi /etc/init.d/memcached
#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
 
# Source function library.
. /etc/rc.d/init.d/functions
 
PORT=11211
USER=nobody
MAXCONN=1024
CACHESIZE=64
OPTIONS=""
 
if [ -f /etc/sysconfig/memcached ];then
    . /etc/sysconfig/memcached
fi
 
# Check that networking is up.
if [ "$NETWORKING" = "no" ]
then
    exit 0
fi
 
RETVAL=0
prog="memcached"
 
start () {
    echo -n $"Starting $prog: "
    # insure that /var/run/memcached has proper permissions
    chown $USER /usr/local/memcached-1.5.9
    daemon /usr/local/memcached-1.5.9/bin/memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /usr/local/memcached-1.5.9/memcached.pid $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached
}
stop () {
    echo -n $"Stopping $prog: "
    killproc memcached
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 ] ; then
        rm -f /var/lock/subsys/memcached
        rm -f /usr/local/memcached-1.5.9/memcached.pid
    fi
}
 
restart () {
    stop
    start
}
 
 
# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
    stop
    ;;
    status)
    status memcached
    ;;
    restart|reload)
    restart
    ;;
    condrestart)
    [ -f /usr/local/memcached-1.5.9 ] && restart || :
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
    exit 1
esac
 
exit $?
  1. 修改文件权限
chmod 755 /etc/init.d/memcached 
  1. 设置开机自启
chkconfig --add memcached
chkconfig memcached on
  1. 启动memcached
service memcached start
  • 如果要指定启动参数,就需要用下述命令进行启动
/usr/bin/memcached -u memcached -p 11211 -m 64 -c 1024
  1. -u:指定用户
  2. -p:指定端口
  3. -m:指定内存大小,单位M
  4. -d:后台以守护进程启动
  5. -l:指定可连接地址,如果需要让其他机器连接,必须指定 -l 0.0.0.0

telnet操作memcached:

1. 连接:

telnet ip host
# ex: telnet 127.0.0.1 11211
  1. 连接后需要按一下回车键才能输入

2. 数据操作:

  1. 查看所有key
# 列举出所有keys
stats items
# 通过stats items 的返回信息中的items id 获取key
# 例如 itemid 为 7 第二个参数为列出的长度 0 为列出当前id对应的 key 名
stats cachedump 7 0
# 通过如上获取 key 的值
get key  # 上一步得到的key名
  1. set:添加一个键值,重复键则覆盖前一个值
set key flas(是否压缩) timeout value_length
value

在这里插入图片描述

  1. get:获取一个键对应的值

在这里插入图片描述

  1. add:添加一条数据,如果key存在,则报错

在这里插入图片描述

  1. delete:删除键值

在这里插入图片描述

  1. flush_all:删除所有键值

在这里插入图片描述

  1. incr:给key对应的value增加设置量,数值型

在这里插入图片描述

  1. decr:给key对应的value减少设置量,数值型

在这里插入图片描述

3. 退出telnet:

quit

python操作memcached

1. 安装依赖包:

pip3 install python-memcached

2. python交互

  1. set:设置键值
>>> import memcache
# 如果要连接多台设备,实现分布式,则将其都写在列表中["127.0.0.1:11211", "10.10.120.123:11211"],此时设置键值可能存在任意服务器上,但只存在其中一台
>>> mc = memcache.Client(["127.0.0.1:11211"], debug=True)
>>> mc.set('username', 'xyz', time=60)
True
>>> name = mc.get('username')
>>> name
'xyz'
>>>
  1. set_multi: 一次设置多个键值
>>> import memcache
>>> mc = memcache.Client(["127.0.0.1:11211"], debug=True)
>>> mc.set_multi({"name": "xyz", "age": 18, "gender": "男"}, time=120)
[]
>>> mc.get('age')
18
>>> mc.get('name')
'xyz'
>>> mc.get('gender')
'男'
>>>
  1. get:获取数据
mc.get('name')
  1. delete:删除数据
mc.delete('name')
  1. incr:自增,如果不指定增长值,则默认为1
mc.incr('age')
mc.incr('age', delta=10)  # 增长值为10
  1. decr:自减,如果不指定减少值,则默认为1
mc.decr('age')

Django中使用memcached:

# settings.py
CACHES = {
	'default': {
		'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
		'LOCATION': '127.0.0.1:11211',
		# 'LOCATION': ['127.0.0.1:11211', '192.168.12.13:11211', ...]
		'KEY_FUNCTION': lambda key, key_prefix, version: key,
		# 我们set数据,键再存储时会被存储为:1:键格式,定义KEY_FUNCTION使得键不变,我们set什么就get什么
	}
}
from django.core.cache import cache //导入
cache.set('name','Mike',20)
cache.get('name')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值