一文带你入门memcached

写在前面

最近在学习的时候发现很多东西看过,但是容易忘记。发现用博客的形式记录下来真的可以加强记忆,后续会不断更新更多技术和分享博客,希望大家提出改进意见 @_@

一.什么是memcached?

memcached是一个分布式的内存型NoSQL数据库。它所有的数据都是存储在内存中的,适合存储一些验证码(短信验证码,图片验证码)等信息。由于是纯内存型的数据库它的效率远高于其他磁盘型数据盘,具体介绍请看memcached维基百科

二.Windows安装memcached

  • 32位系统 1.4.4版本:http://static.runoob.com/download/memcached-win32-1.4.4-14.zip
  • 64位系统 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
  1. windows系统下载上面对应的系统版本进行下载解压。
    windows_memcached
  2. 管理员的方式打开cmd,并安装memcached
> cmd
> cd C:\Program Files\tools\memcached # 切换到memcached的目录
> memcached.exe -d install  #安装memcached
> memcached.exe -d start #启动memcached
> memcached.exe -d stop # 停止memcached

memcached安装
3. 验证memcached

查看memcached的服务是否已经启动
memcached 服务已经启动

  • windows 连接memcached

Windows cmd窗口下输入下面这条命令后按下enter键,即可进入memcached的命令窗口

telnet 127.0.0.1 11211  #连接memcached,默认端口是11211

三.linux安装memcached

博主Linux系统版本:CentOs 7.6

  1. 安装memcached
yum install -y libevent libevent-devel  # 安装memcached的依赖包
yum install -y memcached #安装memcached
Complete! 即表示安装成功
  1. 启动memcached

linux有两种方式启动memcached

# 1.启动memcached
service memcached start  
ps aux|grep memcached  # 查看memcached的进程是否已启动

memcached pid

#2.路径启动
/usr/bin/memcached -l 0.0.0.0  -u memcached -p 11211 -m 64 -d start
  • -l :表示对应的ip,这里填0.0.0.0 表示可以远程访问。只有这个启动才可以远程访问
  • -u:用户名
  • -m:存储在内存中的大小,相当于指定memcahed存储量,如果超过这个存储量,会将过期的内存清除
  • -d:后台运行

四.连接memcached

这里主要介绍下telnet连接

telnet ip[主机ip地址,本地默认127.0.0.1] port[端口号,默认11211]

memcached telnet连接

五.memcached常用的命令

memcached是以键值对的方式进行存储

  1. set:存储,key如果存在会覆盖之前的值
set key[] 0[是否压缩] 120[过期时间] 5[字节长度]
hello[key对应的value值]
STORED  #被存储到内存中
***这里必须存储相对应的字节长度不然会报以下的错误
CLIENT_ERROR bad data chunk

set
2. get:根据key来获取值

get username # 获取对应的key
hello #获取到相应的值
END # 结束
  1. add:语法和set类型,但是key已经存在会报错
set username 0 120 4
jack
STORED
add username 0 120 4
jack
NOT_STORED
  1. delete:根据key来删除值
delete username
DELETED
  1. flush_all:慎用!!!
flush_all #清空memcached内存中所有的内容,数据不再被找回
OK
  1. incr:相加,必须相加或者相减的是整数类型,否则会报错
set age 0 120 2
18
STORED
incr age 20  #必须为整数
38
  1. decr:相减,同incr
decr age 18
20
  1. stats:查看一些有意义的参数
  • get hits:get 命令命中了多少次
  • get_misses:get命令落空了几次
  • curr_items:查看当前memcached中的键值对数
  • total_connections:从memcached开始到现在总共的连接数
  • memcached:默认最大的连接数是1024

六.Python操作memcached

  1. 安装python依赖包
pip install python-memcached
# -*-coding:utf-8-*-
import memcache

# 1.连接memcached(远程断必须以绝对路径下的方式启动)
# /usr/bin/memcached -l 0.0.0.0  -u memcached -p 11211 -m 64 -d start
mc = memcache.Client(['127.0.0.1:11211'], debug=True)

mc.set('age', 18, time=120)  # set添加
mc.add('username', 'jack', time=120)  # add存储
mc.set_multi({"name": "jack", "age": 18, "height": 160, "weight": 120})  # 存储多个

val = mc.get("age")
print("val:{}".format(val))

mc.incr('age')  # 默认增加1
mc.incr('age', 12)  # 指定增加12
mc.decr('age', 12)  # 指定减少12
mc.delete("age")  # 删除key

版权声明:本文为Lb_fly0505原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。