美文网首页
memcached缓存系统笔记

memcached缓存系统笔记

作者: 宽哥好 | 来源:发表于2019-11-26 11:15 被阅读0次

memcached介绍

什么是memcached:

  1. memcached之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJournal访问速度而开发的,后来被很多大型项目采用。官网地址

  2. Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力。Memcached是通过在内存里维护一个巨大的hash表,memcached能存储各种各样的数据,包括图像、视频、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度

  3. 哪些情况下适合使用Memcached:存储验证码(图形验证码,短信验证码)、登录session等所有不是至关重要的数据。

memcached的安装和参数详解

windows:

安装:memcached -d install

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
32位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-x86.zip
64位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-amd64.zip

  • 启动:memcached -d start

  • 停止:memcached.exe -d stop

  • 卸载:memcached.exe -d uninstall

memcached版本>=1.45

  • 安装
    schtasks /create /sc onstart /tn memcached /tr "'F:\software\memcached>memcached.exe' -m 512"

注意:-m 512 意思是设置 memcached 最大的缓存配置为512M。我们可以通过使用
"memcached.exe -h" 命令查看更多的参数配置。

linux(ubuntu):

  • 安装:sudo apt-get install memcached

  • 启动:sudo service memcached start

  • 查看是否启动成功

    查看当前所有端口
    ps aux|grep memcached
    建议使用windows自带的linux子系统

注意:ufw allow 11211

  • 可能出现的问题:
    提示没有权限:使用管理员权限
    不要放在含有中文的路径下面
    提示缺少pthreadGC2.dll文件;将缺少文件拷贝到windows/System32中
    /usr/bin/memcached -u memcache start

  • 后台运行
    /usr/bin/memcached -u memcache -d start

  • 杀掉所有memcached进程
    sudo killall memcached

  • 启动memcached:

    注意:指定用户

    • -d:这个参数是让memcached在后台运行
    • -m:指定占用多少内存,以n为单位,默认为64M
    • -p:指定占用的端口。默认的端口是11211
    • -l:别的机器可以通过哪个ip地址链接到这台服务器。想要别的机器链接,就必须配置'-l 0.0.0.0'
      /usr/bin/memcached -u memcache -l 0.0.0.0 -d start

telnet操作mencached

  1. 登陆
telnet ip地址 端口号
telnet 127.0.0.1 11211
  1. 添加数据:
  • set
    语法 :
set key 0(否)(是否压缩) timeout(过期时间(s)) value_length(字符串的长度)
value

示例:

set username 0 60 7
abcdefg
  • add
    语法 :
add key 0(否)(是否压缩) timeout value_length
value

示例:

add username 0 60 7
abcdefg
  • set 和 add 的区别:
    add是只负责添加数据,不会去修改数据。如果添加的数据的key已经存在了,则添加失败,如果是添加的key不存在,则添加成功。而set不同,如果memcached中不存在相同的key,则进行添加,如果存在,则替换。
  1. 获取数据
    语法:
get key

示例:

get username
  1. 删除数据
    语法:
delete key 

示例:

delete username

fulsh_all::删除memcached中的所有键值对。

  1. 查看mamcached的当前状态
    语法:
stats

get_hists':get命令命中了多少次
'get_misses':get命令get空了几次
'curr_items':当前'memcached'中的键值对的个数
'total_connections':从'memcached'开启到现在总共的连接数
'curr_connections':当前'memcached'的连接数
‘memcached’默认醉的连接数是1024

  1. 增加
set age 0 120 2     > 20
incr age 2          > 22

注意:必须都是数值类型,不然会报错

  1. 减少
decr age 2          > 20

Python操作memcached

  1. 安装
pip install python-memcached
  1. 建立连接
mc = memcache.Client(["127.0.0.1:11211"],debug=True)
  1. 设置数据
mc.set(key="name",val="angle",time=60,min_compress_len=5)

设置多个值

mc.set_multi({'title':r'小红帽','content':r'没有内容'},time=100)
  1. 获取数据
mc.get('title')
  1. 删除数据
mc.delete('name')
  1. 自增长
    默认自增加一,delta属性设置增加值
mc.incr('age',delta=10)
  1. 自减少
mc.decr('age',delta=10)
import memcache

# 连接
# 设置debug为true可以显示错误信息
# 在连接之前,要启动memcached服务
mc = memcache.Client(["127.0.0.1:11211"],debug=True)

# 设置
# time=0,永远不会过期
# key:键
# value:值
# mc.set(key="name",val="angle",time=60,min_compress_len=5)

# 设置多个值
# mc.set_multi({'title':r'小红帽','content':r'没有内容'},time=100)

# # 获取
# # print(mc.get("title"))
# username = mc.get('username')
# print(mc.get('username'))
#
# # 删除
# mc.delete('username')
# print(mc.get('username'))

# 默认自增加一,delta属性设置增加值
mc.incr('age',delta=10)
age = mc.get('age')
print(age)

# 自减少
mc.decr('age',delta=10)
age = mc.get('age')
print(age)

memcached的安全机制

  • memccached 的操作不需要任何用户名和密码,只需要知道'memcached'服务器的ip地址和端口号即可。因此'memcached'使用的时候尤其注意它的安全性。这里听两种安全的解决方法。

  • 使用'-l'参数设置为只有本地可以连接:这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性

  • 使用防火墙,关闭'11211'端口,外面也不能访问

  • ufw enable # 开启防火墙
  • ufw disable # 关闭防火漆
  • ufw default deny:防火墙以禁止的方式打开,默认是关闭哪些没有开启的端口
  • ufw deny 端口号 # 关闭某个端口
  • ufw allow 端口号 # 开启某个端口
  • 查看端口状态:ufw status

相关文章

网友评论

      本文标题:memcached缓存系统笔记

      本文链接:https://www.haomeiwen.com/subject/lbaovctx.html