热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

memached

Memcachedmemcached介绍memcached之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJ

Memcached

memcached 介绍

  1. memcached之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJournal访问速度而开发的,后来被很多大型项目采用。官网是 www.danga.com 或者是 memcached.org
  2. Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力。Memcached是通过在内存里维护一个巨大的hash表,memcached能存储各种各样的数据,包括图像、视频、文件、以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度
  3. 哪些情况下适合使用Memcached:存储验证码(图形验证码,短信验证码)、登录session等所有不是至关重要的数据。

memcached 安装和参数详解

  1. 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" 命令查看更多的参数配置。

  1. linux(ubuntu):
  • 安装:sudo apt-get install memcached

  • 启动:sudo service memcached start

  • 查看是否启动成功

    查看当前所有端口
    ps aux|grep memcached

  • 建议使用windows自带的linux子系统

  • 注意:ufw allow 11211

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

/usr/bin/memcached -u memcache start# 后台运行
/usr/bin/memcached -u memcache -d start# 杀掉所有memcached进程
sudo killall memcached

  1. 启动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 操作memcached

windows下可能没有启动telnet,需要手动启动telnet服务

启动Telnet

首先win+R,在弹出框中输入control并点击打开,打开后,点击程序,可以看见如下图所示

img

然后点击启用或关闭Windows功能

img

打开后,勾选telnet客户端选项,然后点击确定,便可以安装telent了,安装完成后,重启后,便可以正式使用了。

接下来开始学习telnet操作memcached的方法

telnet 登录memcached

命令格式:

telnet ip 地址 端口号

示例:

telnet 127.0.0.1 11211

温馨提示:memcached 存储数据是以键值对的方式存储的

添加数据

  • set 命令(设置)

    • 语法格式

      set key 0(否)(是否压缩) timeout(过期时间) value_length(字符串的长度)

    • 示例

      set name 0 60 5
      angle
      STORED

  • add 命令(添加)

    • 语法格式

      add key 0 timeout value_length

    • 示例

      add name 0 60 2
      ab
      STORED

温馨提示:

set 和 add 的区别:add是只负责添加数据,不会去修改数据。如果添加的数据的key已经存在了,则添加失败,如果是添加的key不存在,则添加成功。而set不同,如果memcached中不存在相同的key,则进行添加,如果存在,则替换。

获取数据

  • get 命令

    • 语法格式

      get key

    • 示例

      get name
      angle

删除数据

  • delete 命令

    • 语法格式

      delete key

    • 示例

      delete name

  • flush_all 命令

    • 语法格式

      flush_all

    • 删除memcached中的所有键值对

查看memcached的当前状态

  • status 命令

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

增加

set age 0 120 2 > 20
incr age 2 > 22
注意:必须都是数值类型,不然会报错

减少

decr age 2 > 20

python 操作memcached

1.安装

pip install python-memcached

2.建立连接

mc = memcache.Client(["127.0.0.1:11211"],debug=True)

3.设置数据

mc.set(key="name",val="angle",time=60,min_compress_len=5)# 设置多个值
mc.set_multi({'title':r'小红帽','content':r'没有内容'},time=100)

4.获取数据

mc.get('title')

5.删除数据

mc.delete('name')

6.自增长

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

7.自减少

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'使用的时候尤其注意它的安全性。这里听两种安全的解决方法。

  1. 使用'-l'参数设置为只有本地可以连接:这种方式,就只能通过本机才能连接,别的机器都不能访问,可以达到最好的安全性
  2. 使用防火墙,关闭'11211'端口,外面也不能访问

linux

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




本文链接:https://www.ngui.cc/el/1199215.html

推荐阅读
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • PG12新增的VACUUM命令的SKIP_LOCKED选项
    PG12版本的VACUUM命令新增了SKIP_LOCKED选项,该选项使得vacuum命令在遇到被lock住的table时可以跳过并被视为成功执行。之前的版本中,vacuum命令会一直处于等待状态。本文还提到了PostgreSQL 12.1版本的相关信息。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
author-avatar
喝喝88地盘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有